2012-02-01 103 views
0

我正在创建一个位图,我需要使用它作为320宽度屏幕的背景。问题是位图没有得到我想要的宽度。它在左侧和右侧有两个空的空间。这是因为它适合屏幕的高度,但我不希望那样,我想强制位图具有我想要的宽度。如果位图的一部分高度不在屏幕上,则无关紧要。位图宽度的问题。宽度受屏幕高度的限制

我需要强制宽度,当我将图像添加到布局,我的意思是图像必须保持长宽比,但图像必须高于屏幕的高度,图像必须是如果图像的高度高于屏幕的高度,则显示不完整。现在不会发生这种情况,因为布局迫使宽度尊重图像并在屏幕高度显示图像的所有高度,那么我认为问题在于布局规则

即时创建位图与:

View view; 
Bitmap aux = Util.loadImage(filename); //image loaded but with his original width 
Bitmap image = Util.scaleBitmap(aux, 320); //scaling to 320 
((ImageView)view).setImageBitmap(resource.image); 

RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(320 , h); 
rlp.addRule(RelativeLayout.CENTER_HORIZONTAL); 
rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP); 

layout.addView(view , rlp); 

我在做什么错?

+0

尝试卸下'RelativeLayout.CENTER_HORIZONTAL' – Arkde 2012-02-01 11:59:18

+0

我需要的规则的规则,我无法将其删除,我需要它,因为我使用此代码为我的很多应用程序的部分,他们需要以背景图像水平居中 – NullPointerException 2012-02-01 12:02:30

+0

我尝试删除它并没有工作 – NullPointerException 2012-02-01 12:03:25

回答

0

既然你不关心的高度,你应该使用CENTER_CROP

定义比例类型,然后设置图像。

CENTER_CROP - 缩放图像均匀(维持图像的宽高比 比),以使得图像的两个尺寸(宽度和高度)将 比视图的相应尺寸等于或大于(负 填充)。