2 exit door eXit_door 于 2013.02.21 15:00 提问

如何设置imageView的高和宽

我想在activity中改变图片视图的宽高属性,但是我用了下面的方法后没有实现:

View card_view = getLayoutInflater().inflate(R.layout.card_details1,null);
coupon_img = (ImageView) card_view.findViewById(R.id.coupon_image);
// I tried this ////////
coupon_img.getLayoutParams().height = 20;
coupon_img.getLayoutParams().width = 20;
// I also tried this ////
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100);
    coupon_img.setLayoutParams(layoutParams);
// also this one ////
coupon_img.setMaxHeight(10);

不知道为什么?应该怎么改才对呢?谢谢。

4个回答

eXit_door
eXit_door   2013.02.21 15:45
已采纳

在这段代码中,创建了一个新的实例并且设置了尺寸:

// SET THE IMAGEVIEW DIMENSIONS
int dimens = 120;
float density = activity.getResources().getDisplayMetrics().density;
int finalDimens = (int)(dimens * density);

LinearLayout.LayoutParams imgvwDimens = 
        new LinearLayout.LayoutParams(finalDimens, finalDimens);
imgAlbumPhoto.setLayoutParams(imgvwDimens);

// SET SCALETYPE
imgAlbumPhoto.setScaleType(ScaleType.CENTER_CROP);

// SET THE MARGIN
int dimensMargin = 5;
float densityMargin = activity.getResources().getDisplayMetrics().density;
int finalDimensMargin = (int)(dimensMargin * densityMargin);

LinearLayout.LayoutParams imgvwMargin = 
        new LinearLayout.LayoutParams(finalDimens, finalDimens);
imgvwMargin.setMargins
(finalDimensMargin, finalDimensMargin, finalDimensMargin, finalDim

ensMargin);

改变已存在的ImageView尺寸,使用这个:

coupon_img.setLayoutParams(new LayoutParams(100, 100));
fsm395943166
fsm395943166   2014.06.04 16:52

我看到个帖子说imageview不能动态修改宽高,可以生成你需要的imageview后将原来的移除,再重新添加

MENGPUXIONG
MENGPUXIONG   2015.09.05 13:17

阿斯蒂芬


MENGPUXIONG
MENGPUXIONG   2015.09.05 13:16
 斯蒂芬斯蒂芬跌幅的
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!