2014-09-04 116 views
1

我需要根据用户选择动态地将一些图像添加到LinearLayout,但我无法弄清楚在添加图像之前如何调整图像大小。我尝试了setWidth()setHeight()方法,但它似乎什么都不做。我想将它们设置为某个dp。调整图像大小以适合LinearLayout

感谢任何人看着这个。

ImageView image = new ImageView(getApplicationContext()); 

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
       LinearLayout.LayoutParams.MATCH_PARENT, 
       LinearLayout.LayoutParams.MATCH_PARENT); 

image.setLayoutParams(params); 
image.setScaleType(ImageView.ScaleType.CENTER); 

image.setImageResource(R.drawable.icon1); 

LinearLayout layout = (LinearLayout) findViewById(R.id.iconLayout); 
layout.addView(image, cart.size()-1, params); 
+0

Uset FitXY而不是中心 – k0sh 2014-09-04 00:48:47

回答

1

问题:

ImageView.ScaleType.CENTER 

它是什么做的是,它会扩展你的形象,但它只能适合在x或y轴。

documentation

Compute a scale that will maintain the original src aspect ratio, 
but will also ensure that src fits entirely inside dst. At least 
one axis (X or Y) will fit exactly. The result is centered inside dst. 

解决方案:

可以使用ImageView.ScaleType.FILL在X和Y轴缩放图像依赖于高度和你ImageView宽度

image.setScaleType(ImageView.ScaleType.FILL); 
+0

它不喜欢'FILL'并导致错误。原因(尽管它不可​​能是正确的)是因为我想让它居中,当下一个被添加时,它会滑过,它们都会居中,等等。我的思想必须完全放弃。 – WeVie 2014-09-04 00:32:40

+0

@WeVie你可以发布图片的样子。与'中心' – 2014-09-04 00:33:57

+0

使用'CENTER'将它添加到中心,但它已经溢出了布局尺寸并覆盖了我上面的文本视图。使用'FIT_CENTER'似乎强迫它适合布局而不会扭曲图像。 – WeVie 2014-09-04 00:42:20

1

好的。我想通过正确的方向进行指导。我能够使用FIT_CENTER并完成它。

相关问题