最近有个需求,是往一个LinearLayout中去添加ImageView,imageView是动态生成的,然后设置imageView的属性,但是不管怎么设置ScaleType,都达不到自己喜欢的状态, 显示原图大小的话会在ImageView的上下有留白,如图
初步猜想是由于原始照片比较大,然后缩放后ImageView的宽高还是原始图片的宽高,所以第一步我就想拿到图片显示的高度,这里有个Matrix,有兴趣的可以去看看,但是还是没有得到,但是在我要放弃的时候看到了一个属性ImageView.setAdjustViewBounds(true);,需要跟setMax宽或高配合用,用后效果如图
代码放在下头:
LayoutParams lParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
lParams.topMargin = 20;
int size = pictures.length;
for(int i=0;i<size;i++){
ImageView img = new ImageView(this);
img.setLayoutParams(lParams);
img.setId(i);
img.setMaxWidth(lParams.width);
img.setAdjustViewBounds(true);
img.setScaleType(ScaleType.FIT_CENTER);
img.setOnClickListener(imClick);
imgLoader.displayImage(pictures[i], img, imOption.getDetailImage());
lin_group.addView(img);
}
本文介绍如何通过设置ImageView的属性,特别是使用setAdjustViewBounds方法来解决图片显示时出现空白的问题,并提供了一个具体的代码实现。
1万+

被折叠的 条评论
为什么被折叠?



