首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >安卓 ImageView 的 scaleType 用法实用总结

安卓 ImageView 的 scaleType 用法实用总结

作者头像
梦飞
发布2022-06-23 11:27:24
发布2022-06-23 11:27:24
1.6K00
代码可运行
举报
文章被收录于专栏:csdn文章同步csdn文章同步
运行总次数:0
代码可运行

安卓 ImageView 的 scaleType 用法实用总结

如果想快速决定用哪个值好,那直接跳到后面的总结吧。

ImageView 共有7种 scaleType。

  1. FIT_开头的4种,共同点是都会对图片进行缩放(只有fitXY不等比缩放);
  2. CENTER_开头的3种,共同点是居中显示,图片的中心点与ImageView的中心点重叠;
  3. MATRIX

下面一个个讲解。

FIT_

  • fitCenter(默认) 等比缩放到某一边能够填充控件大小,且图片能完整显示,并居中。
  • fitStart 等比缩放到某一边能够填充控件大小,且图片能完整显示,并靠左或靠上显示
  • fitEnd 等比缩放到某一边能够填充控件大小,且图片能完整显示,并靠右或靠下显示
  • fitXY 图片(不等比)缩放到控件大小,完全填充控件大小显示

CENTER_

  • center 不使用缩放,显示图片的中心部分,即图片的中心点和ImageView的中心点重叠。 若图片宽高小于控件宽高,则图片只会显示中间部分,即周围会被裁剪。也就是无论如何图片的大小都不会改变,控件大小决定可见范围。

如左图图片小于ImageView,则能够完全显示;右图图片大于ImageView,只能显示中间的一部分。而图片的显示尺寸并没有变化,只不过显示不全而已。

  • centerInside 当图片小于控件时,效果与center相同,居中显示;否则,等比缩放到某一边能够填充控件大小,并居中显示。与fitCenter的区别就是centerInside的图片只会缩小,不会放大。
  • centerCrop 等比缩放到填充整个控件大小,并居中显示。与fitCenter的区别是centerCrop的图片会填充整个区域,所以可能会被裁剪。

(注意这里图片背景为灰色,图片白色部分不属于ImageView,即ImageView已被图片占满。

MATRIX

需要与ImageView.setImageMatrix(Matrix matrix) 配合使用,指定一个变换矩阵用于指定图片如何展示。

如:

代码语言:javascript
代码运行次数:0
运行
复制
imageView.setScaleType(ImageView.ScaleType.MATRIX);  //设置为矩阵模式

Matrix matrix = new Matrix();           //创建一个单位矩阵
matrix.setTranslate(50, 50);          //平移x和y各50单位
matrix.preRotate(40);                   //顺时针旋转40度
imageView.setImageMatrix(matrix);       //设置并应用矩阵

总结

  • 希望图片能够按照原来的比例显示
    • 并且尽可能撑满ImageView(不一定是占满整个ImageView)
      • 希望图片能够完整显示 那就用fitCenterfitStartfitCenter(选哪个取决于要怎么对齐了,一般是用fitCenter吧,没有设置的时候默认值就是fitCenter)
      • 希望图片占满整个ImageView,并且能够容忍两边被裁剪 用centerCrop
    • 不一定要撑满ImageView 用centerInside
    • 希望按照图片原来大小显示,并且能容忍周围被裁剪 用center
  • 不在乎图片比例,希望图片完整显示,且占满整个ImageView,就用fitXY
  • 有其他特殊需求的,用比较高级的matrix

最终总结

可见显示的需求主要是根据是否按比例,图片是否要充满控件这两个因素决定的。就个人使用来说,觉得最常用的就是fitCenter(默认值),因为能够按比例且完整显示,又能在某个方向撑满控件;当希望控件被图片占满时(图片可以被适当裁剪),比较常用的就是centerCrop,因为可以保证图片按比例显示。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-11-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安卓 ImageView 的 scaleType 用法实用总结
    • FIT_
    • CENTER_
    • MATRIX
    • 总结
    • 最终总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档