Android ImageView.ScaleType有图有真相
本来没打算写这篇关于ScaleType的文章的,毕竟网上一大把,但是考虑到接下来的PhotoView源码的解析会用到这方面的知识,又不想让读者们再去费力去找别的相关文章,而且有的文章的讲解都是错的,所以就在这里讲解一下ImageView.ScaleType的几种不同类型究竟有什么区别,我们在实际使用的时候究竟应该采用哪一种
使用方法
- xml中:android:scaleType=”类型”
java代码中:imageview.setScaleType(类型)
注意这个属性只有和ImageView搭配才有作用
- 类型作用
- matrix:用矩阵绘图,从原图像的原点开始,尽量去充满ImageView控件的大小,实在充满不了又没有对matrix设置scale就会在ImageView上显示一段没有图像的区域
- fitXY:暴力拉伸或缩放,即不考虑图片的比例失调,每个方向独立地拉伸或者缩放到ImageView的大小,这种情况下图片很有可能会比例失调,ImageView全部被图像充满,这也是这几种类型中唯一会不按比例调整图片大小的类型,所以一般不用
- fitStart:按比例拉伸或缩放,可以考虑变换的渐进过程,即按比例放大或缩小图像,直至整个图像都在ImageView的显示区域内,然后把调整后的图像从ImageView的左上角开始放,即图像的上边缘和ImageView的上边缘对齐(除去padding)
- fitCenter:同fitStart,只不过把调整后的图像放在ImageView的中间
- fitEnd:同fitStart,把调整后的图像放在ImageView靠下的地方,使得图像的下边缘和ImageView的下边缘对齐(当然也要除去padding)
- center:保持原图像大小,不对图像拉伸和缩放,直接把图像放在ImageView的中间,图像大的话就截取图像中间的部分
- centerInside:按比例拉伸和缩放,保证图像的宽和高分别都<=ImageView的宽和高,然后把调整后的图像放在ImageView中间,这种情况下ImageView可能会有没被图像覆盖的部分
- centerCrop:按比例拉伸和缩放,保证图像的宽和高分别都>=ImageView的宽和高,然后把调整后的图像放在ImageView中间,此时整个ImageView都是覆盖着图像的
- 类型总结
ScaleType一共有8种类型,怎么才能记住这几种类型的特征呢,这里我们应用分类的思想,从这几种方式中选取有共同之处的放在一类中,所以我把他们分成三类:- fit合身类:fit*这种都属于这一类,这一类的特点是会保证在ImageView的显示范围之外不会有图像绘制,即图像全部在ImageView内显示,不论他是否比例变化,放在ImageView的什么位置
- center居中类:center*这种的类型,这一类的特点是会保证图像都在ImageView的中间,当然也可以是整个ImageView
- matrix:这个比较特殊,也最常用,这篇文章讲的不错,大家可以看看:http://blog.csdn.net/pathuang68/article/details/6991867
上图了
原图片比ImageView的尺寸大的截图
原图片比ImageView的尺寸小的截图
原谅我太懒~~~,截图来自于http://blog.csdn.net/xilibi2003/article/details/6628668
看完了这些是不是对ScaleType有了清晰的认识了呢,希望大家能在以后的项目中正确选择自己需要的类型,当然很多情况下直接用.9.png更方便一些
Android ImageView.ScaleType有图有真相相关推荐
- android imageview 的常用属性,android imageview scaletype属性
android imageview scaletype属性并不是很常用,以至于到现在我才注意到,但是在某些应用中,这是一个很重要的属性,比如相册应用. ImageView的Scaletype决定了图片 ...
- Android ImageView(scaleType属性)(转)
(转自:http://www.open-open.com/lib/view/open1378257991687.html) 1 2 3 4 5 6 <ImageView android:id=& ...
- android matrix 简书,[Android] ImageView ScaleType完全解析
ImageView有一个ScaleType的属性,该属性决定了图片在ImageView上的展现形式,包括:是否进行缩放.如何进行缩放.缩放之后图片的摆放位置等等.官方介绍如下: Options for ...
- Android ImageView ScaleType 图解
ImageView ScaleType ImageView的Android:scaleType属性,是用来告诉android:src=设置的图片,如何调整去匹配ImgeView.此属性对android ...
- android imageview scaletype,ImageView的scaleType知识总结
来源:若兰明月 ImageView的ScaleType决定了图片在View上的显示的样式,比如如何对图片进行缩放,显示图片整体还是部分,还是根据自己的需求进行相关显示.设置比较简单: xml中如下定义 ...
- Android ImageView ScaleType:图解
ImageView的scaleType的属性有好几种,分别是matrix(默认).center.centerCrop.centerInside.fitCenter.fitEnd.fitStart.fi ...
- Android ImageView scaleType
一.类型 ImageView有一个属性叫做scaleType,它的取值一共有八种,分别是:matrix,fitXY,fitStart,fitCenter,fitEnd,center,centerCro ...
- android imageview scaletype 按钮状态,Android ImageView 之 ScaleType 详解
基础储备 在 ImageView 中有一个成员变量mDrawMatrix,这个变量是Matrix(矩阵)类型,我们了解一下这个Matrix类,Matrix 常见的方法有setScale(sx,sy) ...
- Android ImageView的ScaleType属性
android中ImageView的ScaleType属性 ScaleType的值分别代表的意义: ImageView是Android中的基础图片显示控件,该控件有个重要的属性是ScaleType,该 ...
最新文章
- hadoop + spark+ hive 集群搭建(apache版本)
- 在featureDataset和workspace下創建featureclass
- Windows10 家庭版——开启Hyper-V虚拟机
- HDOJ1181变形课 深搜回溯
- 内存分配——栈、堆、静态区、符号区等等
- e服务器系统可以用PE来装吗,U盘安装系统有哪些方式可以启动WinPE
- 机器学习之-BoostedTree
- 游戏服务器级别分类及对应服务器架构
- Windows多用户配置,不同用户不同访问权限
- Unity 3D模型展示之自由观察模型
- 极限思想在计算机中的应用,数学极限思想的应用论文(共2篇)
- [Noi1999]钉子和小球
- 特斯拉官网上贷款利息年化费率计算错误
- y yun m_yun是y---un 组成 ,还是y----ün组成
- 十年海军为什么选择开启代码人生?
- 快速启动以管理员身份运行命令行窗口命令
- 四门轿跑 标致发布Exalt概念车设计图
- OracleOCM认证
- 中兴c600olt数据配置_中兴OLT配置
- vmos切换安卓版本_【手机虚拟系统】VMOS虚拟大师无广告版v1.1.35