2014-09-04 193 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並完成它。