码迷,mamicode.com
首页 > 移动开发 > 详细

Android显示等宽图片的问题

时间:2016-03-29 12:34:54      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

安卓开发常遇到一个问题,就是在listView里面,在不知道图片宽高的前提下,另图片布满屏幕(图片宽度等于屏幕宽度,高度自适应)。在listView中,只是设置scaleType,imageView.setBackground()是一定程度上导致图片拉伸失真,setImageDrawable()则不能满屏。参考网上的几种方案,自己总结了一个比较简单可用的:

imageView布局:

 1 <ImageView 
 2         android:id="@+id/imgIco"
 3         android:layout_width="wrap_content"        
 4         android:layout_height="wrap_content"
 5         android:layout_marginLeft="15dp"
 6         android:layout_marginRight="15dp"
 7         android:layout_marginTop="10dp" 
 8         android:adjustViewBounds="true" 
 9         android:scaleType="fitCenter"  
10         />

其中,ajustViewBounds要设置为true,fitCenter居中对齐(如果直接设置了width为math_content也可以实现了,只是如果一些图片很长,会导致listView的item布局也很长)

然后,在代码里面设置ImageView最大宽度和最大高度,因为adjustViewBounds属性只有在设置了最大高度和最大宽度后才会起作用:

1                 WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
2                 int screenWidth = wm.getDefaultDisplay().getWidth();
3                 ViewGroup.LayoutParams lp = holder.imgIco.getLayoutParams();
4                 lp.width = screenWidth;
5                 lp.height = LayoutParams.WRAP_CONTENT;
6                 holder.imgIco.setLayoutParams(lp);
7                 holder.imgIco.setMaxWidth(screenWidth);
8                 holder.imgIco.setMaxHeight(screenWidth * 5);//这里其实可以根据需求而定,我这里测试为最大宽度的5倍

 

Android显示等宽图片的问题

标签:

原文地址:http://www.cnblogs.com/chq3272991/p/5332119.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!