安卓的适配一直是一件头疼的事情.
特别是图片.有的时候总是忽大忽小.
以前习惯于从服务器下载图片后,再写一个工具类来缩减成指定的大小,然后放进指定控件.

其实不用那么麻烦,ImageView控件中有一个android:scaleType属性。
即ImageView.setScaleType(ImageView.ScaleType)
Sdk中介绍作用为:Options for scaling the bounds of an image to the bounds of this view.
大体意思为:一些缩放边界来控制图片视图的界限范围的选项

说白了,就是控制ImageView的边界显示方式.

CENTERCenter the image in the view, but perform no scaling.按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示.CENTER_CROPScale the image uniformly (maintain the image's aspect ratio) so that both dimensions (width and height) of the image will be equal to or larger than the corresponding dimension of the view (minus padding).按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)CENTER_INSIDEScale the image uniformly (maintain the image's aspect ratio) so that both dimensions (width and height) of the image will be equal to or less than the corresponding dimension of the view (minus padding).将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽FIT_CENTERScale the image using CENTER.把图片按比例扩大/缩小到View的宽度,居中显示FIT_ENDScale the image using END.把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置FIT_STARTScale the image using START.把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置FIT_XYScale the image using FILL.把图片不按比例 扩大/缩小到View的大小显示MATRIXScale using the image matrix when drawing.用矩阵来绘制

例如:
如果获取到的图片的长宽比例是固定的,假设1:1.
设计要去在480*800的分辨率上要显示大小为60*60
那对于的属性就设置为:

android:layout_width="40dip"android:layout_height="40dip"android:scaleType="fitXY"

这样,只要你获取到的图片的比例是1:1,无论图片多大,他都会按照60*60的大小来显示。
(60px在480*800下为40dip,(60 -0.5) / 1.5=…)

这样就不需要单独写一个工具来缩放图片了,而且在多分辨率适配的时候,适应能力也大大加强了。

原文地址:http://www.cnblogs.com/chorrysky/archive/2012/05/11/2496107.html

更多相关文章

  1. android图片压缩总结
  2. 从网络获取图片,并缓存到SD卡
  3. Android利用系统提供的函数或常量判断版本大小
  4. ionic3 图片选取imagepicker以及camera汉化
  5. Android修改图片颜色-转成灰度图
  6. Android ImageView设置长度高度为wrap_content时高度根据图片比
  7. Android自适应不同分辨率或不同屏幕大小

随机推荐

  1. RN-修改安卓项目名字
  2. Android中多媒体处理
  3. Android学习方法路线
  4. Android恶意软件特征及分类
  5. Android访问网络,使用HttpURLConnection还
  6. application中android:name的作用
  7. android 4.x receiver、services无法启动
  8. Android中触摸事件传递过程
  9. Android 内核解剖 - AMS(Activity Manager
  10. Android(安卓)4.0 Launcher2源码分析——