Android ImageView 的scaleType属性简介

Android2021年8月19日 pm7:41发布3年前 (2021)更新 3xcn.com@站长
0 0 0
广告也精彩
目录

前言

最近在自定义ImageView时用到scaleType属性,因此在这里整(摘)理(抄)一下,方便自己查阅。

好记性不如烂笔头

正文

scaleType该属性指定让ImageView如何显示图片,包括是否进行缩放、等比缩放、缩放后展示位置等。

Android 提供了八种scaleType的属性值分别如下:

    public static enum ScaleType {
        MATRIX,
        FIT_XY,
        FIT_START,
        FIT_CENTER,
        FIT_END,
        CENTER,
        CENTER_CROP,
        CENTER_INSIDE;
    }

PS: xml和java都可以配置ImageView的属性。

下面单独对每一种简单的介绍一下,如果要图解,推荐看文末的第一个参考链接,该作者特意附上了图片描述。感谢。

MATRIX

用矩阵来绘制,可以动态缩放、移动和旋转等操作图片。

这个需要配合setImageMatrix()来使用。

举个例子

imageView.setScaleType(ImageView.ScaleType.MATRIX);
Matrix matrix = new Matrix(); 
matrix.preRotate(90); //顺时针旋转90
imageView.setImageMatrix(matrix);

FIT_XY

图片缩放并全铺到View上,不是等比缩放。

FIT_START

把图片按比例扩大/缩小到View的高宽上,从左或者上部开始显示。

  1. 如果图片的宽大于View的宽,就显示在上部。(下部空白)
  2. 如果图片的高大于View的高,就显示在左部。(右部空白)

FIT_CENTER

这个是ImageView的默认模式。图片会被等比缩放到能够填充控件大小,并居中显示。(存在上下空白)

FIT_END

这个跟FIT_START刚好相反。

把图片按比例扩大/缩小到View的高宽上,从右或者底部开始显示。

  1. 如果图片的宽大于View的宽,就显示在底部。(上部空白)
  2. 如果图片的高大于View的高,就显示在右部。(左部空白)

CENTER

按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示。

PS:这个会截取中心图片显示。

CENTER_CROP

按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)

CENTER_INSIDE

将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽,并居中显示。

参考文章

  1. Android ImageView 的scaleType 属性图解
  2. setScaleType的各种情况

 历史上的今天

版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站文章: 部分来源于网络,仅供站长学习和参考,若侵权请留言
广告也精彩

相关文章

广告也精彩

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

暂无评论...

网站升级中

公告

近期网站升级中,可能存在一些bug。欢迎反馈 https://www.91es.com/we.html

本站域名

本站域名 : 91es.com3xcn.com。本站邮箱 : 站长邮箱 i@oorr.cn,通知邮箱we@oorr.cn ,如有更新,请看公告 。