Android ImageView的scaleType属性与adjustViewBounds属性与图片自适应问题

原创 2016年04月11日 10:50:05

说道图片自适应,首先要了解一下属性:

ImageView的scaleType的属性有好几种,分别是matrix(默认)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXY


android:scaleType="center"


保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理。


android:scaleType="centerCrop"


以填满整个ImageView为目的,将原图的中心对准ImageView的中心,等比例放大原图,直到填满ImageView为止(指的是ImageView的宽和高都要填满),原图超过ImageView的部分作裁剪处理。


android:scaleType="centerInside"


以原图完全显示为目的,将图片的内容完整居中显示,通过按比例缩小原图的size宽(高)等于或小于ImageView的宽(高)。如果原图的size本身就小于ImageView的size,则原图的size不作任何处理,居中显示在ImageView。


android:scaleType="matrix"


不改变原图的大小,从ImageView的左上角开始绘制原图,原图超过ImageView的部分作裁剪处理。


android:scaleType="fitCenter"


把原图按比例扩大或缩小到ImageView的ImageView的高度,居中显示


android:scaleType="fitEnd"


把原图按比例扩大(缩小)到ImageView的高度,显示在ImageView的下部分位置


android:scaleType="fitStart"


把原图按比例扩大(缩小)到ImageView的高度,显示在ImageView的上部分位置


android:scaleType="fitXY"


把原图按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满ImageView.


下面附上效果图:


原图为Pocoyo的头像,上图为原图的size大于ImageView的size,下图为原图的size小于ImageView的size

-------------------


Tip:很多人都觉得fitCenter和centerInside没有区别,根据上面的效果图来分析,其实是有区别的。fitCenter是将原图等比例放大或缩小,使原图的高度等于ImageView的高度,并居中显示,而centerInside在原图的原本size大于ImageView的size时,则缩小原图,效果同fitCenter;在原图的原本size小于ImageView的size时,则不进行任何size处理,居中显示,效果同center。

ImageView的android:adjustViewBounds属性为是否保持原图的长宽比,单独设置不起作用,需要配合maxWidth或maxHeight一起使用(该句话的后半句我还没有去验证,但我用的时候没有与maxWidth、MaxHeight一起使用)。

【ImageView】图片自适应及android:scaleType属性

ImageView的属性 android:scaleType是ImageView的属性 等同于Java代码的 ImageView.setScaleType(ImageView.ScaleType)...
  • knockheart
  • knockheart
  • 2013年06月23日 16:13
  • 11561

解决android:background背景图片被拉伸问题

Android UI设计过程中,android:background 被拉伸的问题常常困扰着许多人。本文提供了两种解决方案供参考。...
  • oathevil
  • oathevil
  • 2014年04月14日 22:40
  • 89679

android自定义适配屏幕的ImageView

package org.angryfun.view;   "code" class="java">import android.content.Context;   import android....
  • findsafety
  • findsafety
  • 2016年04月30日 19:53
  • 1034

ImageView中android:adjustViewBounds属性

public voidsetAdjustViewBounds(boolean adjustViewBounds) Since: API Level 1 Set this to true...
  • xiahao86
  • xiahao86
  • 2013年11月20日 13:52
  • 23685

android ImageView android:adjustViewBounds属性的作用

android:adjustViewBounds  是否保持宽高比。需要与maxWidth、MaxHeight一起使用,否则单独使用没有效果。  android:cropToPadding  ...
  • xuewater
  • xuewater
  • 2014年01月17日 16:19
  • 1747

Imageview.setAdjustViewBounds用法

public void setAdjustViewBounds (boolean adjustViewBounds) 当你需要在 ImageView调整边框时保持可绘制对象的比例时,将该值设为真。 ...
  • DQ1005
  • DQ1005
  • 2015年08月25日 15:25
  • 2868

ImageView的android:adjustViewBounds属性

取值为true时: Adjust the ImageView's bounds to preserve the aspect ration of its drawable. 调整ImageView的界...
  • pingchuanyang
  • pingchuanyang
  • 2013年07月05日 15:27
  • 17115

Android ImageView scaleType+adjustViewBounds两个属性详解 保证图片不变形

转自:http://www.2cto.com/kf/201411/348601.html 记得当初学习ImageView 的时候,觉得很简单,很基础。 直到两年后我才开始使用adjustViewBo...
  • u012553125
  • u012553125
  • 2016年08月24日 22:49
  • 3732

ImageView中android:adjustViewBounds属性

public voidsetAdjustViewBounds(boolean adjustViewBounds) Since: API Level 1 Set this to true if ...
  • Ada168855
  • Ada168855
  • 2013年03月07日 10:19
  • 9880

ImageView的android:adjustViewBounds属性

取值为true时: Adjust the ImageView's bounds to preserve the aspect ration of its drawable. 调整ImageView...
  • onceing
  • onceing
  • 2016年05月31日 17:26
  • 610
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android ImageView的scaleType属性与adjustViewBounds属性与图片自适应问题
举报原因:
原因补充:

(最多只允许输入30个字)