本来没打算写这篇关于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有图有真相相关推荐

  1. android imageview 的常用属性,android imageview scaletype属性

    android imageview scaletype属性并不是很常用,以至于到现在我才注意到,但是在某些应用中,这是一个很重要的属性,比如相册应用. ImageView的Scaletype决定了图片 ...

  2. Android ImageView(scaleType属性)(转)

    (转自:http://www.open-open.com/lib/view/open1378257991687.html) 1 2 3 4 5 6 <ImageView android:id=& ...

  3. android matrix 简书,[Android] ImageView ScaleType完全解析

    ImageView有一个ScaleType的属性,该属性决定了图片在ImageView上的展现形式,包括:是否进行缩放.如何进行缩放.缩放之后图片的摆放位置等等.官方介绍如下: Options for ...

  4. Android ImageView ScaleType 图解

    ImageView ScaleType ImageView的Android:scaleType属性,是用来告诉android:src=设置的图片,如何调整去匹配ImgeView.此属性对android ...

  5. android imageview scaletype,ImageView的scaleType知识总结

    来源:若兰明月 ImageView的ScaleType决定了图片在View上的显示的样式,比如如何对图片进行缩放,显示图片整体还是部分,还是根据自己的需求进行相关显示.设置比较简单: xml中如下定义 ...

  6. Android ImageView ScaleType:图解

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

  7. Android ImageView scaleType

    一.类型 ImageView有一个属性叫做scaleType,它的取值一共有八种,分别是:matrix,fitXY,fitStart,fitCenter,fitEnd,center,centerCro ...

  8. android imageview scaletype 按钮状态,Android ImageView 之 ScaleType 详解

    基础储备 在 ImageView 中有一个成员变量mDrawMatrix,这个变量是Matrix(矩阵)类型,我们了解一下这个Matrix类,Matrix 常见的方法有setScale(sx,sy) ...

  9. Android ImageView的ScaleType属性

    android中ImageView的ScaleType属性 ScaleType的值分别代表的意义: ImageView是Android中的基础图片显示控件,该控件有个重要的属性是ScaleType,该 ...

最新文章

  1. Android获取系统应用及安装应用的权限列表
  2. Theano - 更多的例子
  3. LA 3644 易爆物 并查集
  4. Interview and paper based test
  5. Linux C语言调用C++动态链接库
  6. 【重要更新】TX Text Control ActiveX X16发布 | 附下载
  7. 设置Android app背景图片(Android studio)
  8. nssl 1438.战略威慑
  9. 手写 React 第 2 节 - 初探 React 实现机制
  10. 一文了解下一代互联网核心技术HTTP/3及技术发展
  11. quartz配置,实时更改
  12. 湖南科技大学学生首夺2011德国红点设计大奖
  13. Lazy 呀!!!!!!
  14. 搭建redis的步骤
  15. 《被讨厌的勇气》——第四夜阅读摘记
  16. 网络新系统客户端常见问题及解决方案
  17. 翟欣欣微博发声解释“真相”
  18. 在PyBullet中进行机械臂的强化学习
  19. 国家标准网www.biaozhun.net所有标准免费下载
  20. “蝶变•跨越”2019年度慧聪LED显示屏行业品牌盛会各奖项15强以及单项奖10强名单诞生!!!

热门文章

  1. (Adventure项目)自行车业务数据分析报告(二)
  2. 机器学习(ML)在材料领域应用
  3. SOLIDWORKS工程图导出为DWG图纸
  4. ESP8266模组作为客户端连接到网络调试助手服务器
  5. 计算机备份与恢复教案,15数据备份与恢复(教案)
  6. 读《达·芬奇密码》| 一场侦探式的宗教传道
  7. html网页大赛小组作品,ACCPT183班HTML网页设计大赛:小页面,大精彩!
  8. 【gt+】RS485详解
  9. 写作系列之: UAV领域概述的参考文献集合
  10. 怎样卸载deepin系统_Deepin深度系统系统卸载教程 - 安装卸载 - Deepin深度系统用户手册...