我们知道,ImageView有一个属性叫做scaleType,它的取值一共同拥有八种,各自是:matrix,fitXY。fitStart,fitCenter。fitEnd,center,centerCrop。centerInside。

那我们以下一起来看看这八种取值分别代表什么意思。

我用两张图片来做demo,这两张图片的分辨率一大一小,图片分别叫做big和small。原图例如以下:

big:

small:

OK,准备工作已经完毕。

matrix

matrix表示原图从ImageView的左上角開始绘制。假设原图大于ImageView,那么多余的部分则剪裁掉,假设原图小于ImageView,那么对原图不做不论什么处理。比方我的两张大小不同的图片。分别显示在96dp×96dp的ImageView上,会有不同的效果,代码例如以下:

    <ImageViewandroid:layout_width="96dp"android:layout_height="96dp"android:adjustViewBounds="false"android:background="#ffaa77"android:scaleType="matrix"android:src="@drawable/big" /><ImageViewandroid:layout_width="96dp"android:layout_height="96dp"android:adjustViewBounds="false"android:background="#aa99cc"android:scaleType="matrix"android:src="@drawable/small" />

显示效果例如以下:

我们看到,big图片因为比較大,因此仅仅有左上角显示出来了。其它部分则被剪裁掉了。而small图片因为分辨率比較小。因此完整的显示在ImageView的左上角。

fitXY

fitXY的目标是填充整个ImageView。为了完毕这个目标,它须要对图片进行一些缩放操作,在缩放的过程中。它不会依照原图的比例来缩放。比方以下一个栗子:

    <ImageViewandroid:layout_width="96dp"android:layout_height="96dp"android:background="#ffaa77"android:scaleType="fitXY"android:src="@drawable/big" /><ImageViewandroid:layout_width="96dp"android:layout_height="128dp"android:background="#aa99cc"android:scaleType="fitXY"android:src="@drawable/small" />

显示效果例如以下:

两张图片都被显示出来了,可是都有一定程度的变形。因为在这里系统仅仅考虑将ImageView填充满,而不会依照原图比例去缩放。

fitStart

将图片按比例缩放至View的宽度或者高度(取宽和高的最小值),然后居上或者居左显示(与前面缩放至宽还是高有关),我们来看以下一个样例:

    <ImageViewandroid:layout_width="48dp"android:layout_height="256dp"android:background="#ffaa77"android:scaleType="fitStart"android:src="@drawable/big" /><ImageViewandroid:layout_width="256dp"android:layout_height="36dp"android:background="#aa99cc"android:scaleType="fitStart"android:src="@drawable/small" />

显示效果:

big图片是缩放至ImageView的宽度,然后居上显示。small图片是缩放至ImageView的高度,然后居左显示。

fitCenter

fitCenter和fitStart基本一样,唯一不同的是fitCenter将图片按比例缩放之后是居中显示。看以下一个样例:

    <ImageViewandroid:layout_width="48dp"android:layout_height="256dp"android:background="#ffaa77"android:scaleType="fitCenter"android:src="@drawable/big" /><ImageViewandroid:layout_width="256dp"android:layout_height="48dp"android:background="#aa99cc"android:scaleType="fitCenter"android:src="@drawable/small" />

显示效果例如以下:

fitEnd

fitEnd和fitStart也基本一样。唯一不同的是fitEnd将图片按比例缩放之后是居右或者居下显示,比方以下一个Demo:

    <ImageViewandroid:layout_width="48dp"android:layout_height="256dp"android:background="#ffaa77"android:scaleType="fitEnd"android:src="@drawable/big" /><ImageViewandroid:layout_width="256dp"android:layout_height="48dp"android:background="#aa99cc"android:scaleType="fitEnd"android:src="@drawable/small" />

center

center表示将原图依照原来的大小居中显示,假设原图的大小超过了ImageView的大小,那么剪裁掉多余部分,仅仅显示中间一部分图像,比方以下一个Demo:

    <ImageViewandroid:layout_width="48dp"android:layout_height="256dp"android:background="#ffaa77"android:scaleType="center"android:src="@drawable/big" /><ImageViewandroid:layout_width="256dp"android:layout_height="24dp"android:background="#aa99cc"android:scaleType="center"android:src="@drawable/small" />

显示效果例如以下:

centerCrop

centerCrop的目标是将ImageView填充满,故按比例缩放原图,使得能够将ImageView填充满。同一时候将多余的宽或者高剪裁掉,比方以下一个Demo :

    <ImageViewandroid:layout_width="48dp"android:layout_height="256dp"android:background="#ffaa77"android:scaleType="centerCrop"android:src="@drawable/big" /><ImageViewandroid:layout_width="256dp"android:layout_height="48dp"android:background="#aa99cc"android:scaleType="centerCrop"android:src="@drawable/small" />

显示效果例如以下:

centerInsid

centerInside的目标是将原图完整的显示出来。故按比例缩放原图。使得ImageView能够将原图完整显示,比方以下一个Demo:

    <ImageViewandroid:layout_width="48dp"android:layout_height="256dp"android:background="#ffaa77"android:scaleType="centerInside"android:src="@drawable/big" /><ImageViewandroid:layout_width="256dp"android:layout_height="48dp"android:background="#aa99cc"android:scaleType="centerInside"android:src="@drawable/small" />

显示效果例如以下:

OK。关于scaleType属性我们就说这么多。普通情况下,当我们给ImageView的宽高都为固定值的时候我们才有可能用到这些属性。

Demo下载

android学习笔记之ImageView的scaleType属性相关推荐

  1. Android学习笔记之Menu的ShowAsAction属性的设置

    (1)在res--menu目录下的main.xml文件 <menu xmlns:android="http://schemas.android.com/apk/res/android& ...

  2. android scaletype没作用,Android源码系列之深入理解ImageView的ScaleType属性

    做Android开发的童靴们肯定对系统自带的控件使用的都非常熟悉,比如Button.TextView.ImageView等.如果你问我具体使用,我会给说:拿ImageView来说吧,首先创建一个新的项 ...

  3. Android学习笔记21:ImageView获取网络图片

    Android平台有3种网络接口可以使用,它们分别是:java.net.*(标准java接口).org.apache(Apache接口)和android.net.*(Android网络接口).本文将使 ...

  4. Android ImageView的ScaleType属性

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

  5. Android学习笔记19:ImageView实现图片适屏与裁剪

    在Android中,要将一张图片显示在屏幕上,需要创建一个显示图片的对象,该对象就是ImageView. 1.ImageView常用属性 要对图片进行适屏裁剪操作,首先需要了解ImageView的常用 ...

  6. Android入门: 对图片 ImageView的scaleType属性的理解

    关于ImageView的scaleType属性的理解 问题:图片在不同机型上的显示大小不同 1.android:scaleType="center" 保持原图的大小,显示在Imag ...

  7. Android ImageView 的scaleType 属性

    Android ImageView 的scaleType 属性 枚举值 ImageView.ScaleType CENTER 使图像在视图中居中,但不执行缩放. ImageView.ScaleType ...

  8. Android学习笔记之滑动翻页(屏幕切换)

    如何实现手机上手动滑动翻页效果呢?呵呵,在这里我们就给你们介绍一下吧. 一般实现这个特效会用到一个控件:ViewFlipper <1>View切换的控件-ViewFlipper 这个控件是 ...

  9. Android学习笔记 2.5.3 实例——使用SimpleAdapter创建ListView 2.5.4 自动完成文本框(AutoCompleteTextView)的功能与用法

    Android学习笔记 疯狂Android讲义 文章目录 Android学习笔记 疯狂Android讲义 第2章 Android 应用的界面编程 2.5 第4组 UI组件:AdapterView及其子 ...

最新文章

  1. ogg mysql的原理_OGG基础原理了解
  2. 2019年企业云呈现五大技术发展趋势
  3. python自动创建目录_python自动目录环境
  4. Fluentd初探 简介与安装
  5. netstat [选项]
  6. 方案一TCP 完成聊天室的编写
  7. Python之路【第一篇】:环境搭建
  8. 电脑系统哪个最好用_袪痘袪痘印哪个产品最好 祛痘印最好用的产品十大推荐...
  9. cocoapods安装bug
  10. hdu1754 I hate it线段树模板 区间最值查询
  11. 知识图谱中的关系推理
  12. jqAutoComplete 和 knockout
  13. 【图像分割】基于Matlab Tsallis熵算法灰度图像分割【含Matlab源码 715期】
  14. 动态生成WizardPage
  15. 2021年遥感类SCI期刊JCR分区/中科院分区排名与影响因子汇总
  16. 设置gvim中横竖光标_VIM的配置:高亮光标所在的行列
  17. 卸载office提示无法打开修补程序包 修补程序包是否存在的解决方法.
  18. 针对m3u8视频加密的一些尝试
  19. 图片的合成(个人练习,不喜勿喷!)
  20. 【面试题】一个Http请求的流程

热门文章

  1. 关于人脸识别滥用的十个可能的应对方案
  2. SAP Ariba——全球最大的采购服务平台
  3. 机器学习(1)特征选择与特征抽取
  4. 百家争鸣|国内外NLP领域学术界和工业界的牛人和团队
  5. 出道即巅峰,掀起AI领域巨浪的GPT-3,被过誉了吗?
  6. 2020 五大技术趋势:无人驾驶发展、机器视觉崛起、区块链实用化、人类增强技术、超自动化...
  7. 5G将如何推动未来十年智能城市的发展
  8. 华为深度学习新模型DeepShift:移位和求反代替乘法,神经网络成本大降
  9. 刚刚,生物学横扫诺贝尔3大奖,两名女性获奖!化学奖授予试管中的“进化论”...
  10. AlphaGo Zero的伟大与局限——ResNet作者、旷视研究院院长孙剑深度评述