Date
Nov. 21st, 2024
 
2024年 10月 21日

Post: Android: ScaleType

Android: ScaleType

Published 12:01 Jan 23, 2015.

Created by @ezra. Categorized in #Programming, and tagged as #Android.

Source format: Markdown

Table of Content

应该是个很常用的属性, 总结一下。

用法

ImageView.ScaleType.CENTER|android:scaleType="center" 以原图的几何中心点和 ImagView 的几何中心点为基准,按图片的原来 size 居中显示, 不缩放, 当图片长/宽超过 View 的长/宽, 则截取图片的居中部分显示 ImageViewsize。 当图片小于 View 的长宽时, 只显示图片的 size, 不剪裁。

ImageView.ScaleType.CENTER_CROP|android:scaleType="centerCrop" 以原图的几何中心点和 ImagView 的几何中心点为基准,按比例扩大(图片小于 View 的宽时)图片的 size 居中显示, 使得图片长 (宽)等于或大于 View 的长(宽),并按View的大小截取图片。当原图的 size 大于 ImageView 时, 按比例缩小图片, 使得长宽中有一向等于 ImageView ,另一向大于 ImageView 。实际上, 使得原图的 size 大于等于 ImageView

ImageView.ScaleType.CENTER_INSIDE|android:scaleType="centerInside" 以原图的几何中心点和 ImageView 的几何中心点为基准, 将图片的内容完整居中显示, 通过按比例缩小原来的 size 使得图片长(宽)等于或小于 ImageView 的长(宽)

ImageView.ScaleType.FIT_CENTER|android:scaleType="fitCenter" 把图片按比例扩大(缩小)到 View 的宽度, 居中显示

ImageView.ScaleType.FIT_END|android:scaleType="fitEnd" 把图片按比例扩大(缩小)到 View 的宽度, 显示在 View 的下部分位置

ImageView.ScaleType.FIT_START|android:scaleType="fitStart" 把图片按比例扩大(缩小)到 View 的宽度, 显示在 View 的上部分位置

ImageView.ScaleType.FIT_XY|android:scaleType="fitXY" 把图片按照指定的大小在 View 中显示, 拉伸显示图片, 不保持原比例, 填满 View

ImageView.ScaleType.MATRIX|android:scaleType="matrix"matrix 来绘制

scaletype 的种类

scaletype 的种类分为三类 matrix (默认) 、fit-Xcenter:

matrix

这个就不多说了。

fit-X

fit-X 类中, fitStartfitCenterfitEnd 之间的都是根据需要使原图改变对 ImageView 进行适应, 不剪裁, 按 matrix 进行绘制, 但它们 的区别在于基准不同:

  • fitStart 的基准为最上角的点 (即 matrix 方式开始的点)
  • fitCenter 的基准点为中间的点 (matrix 方式中可以使图片居中的点)
  • fitEnd 的基准点为右下角的点 (即 matrix 方式最后绘制点)

center

center 类中, centercenterCropcenterInside 都是以原图的几何中心点和 ImageView 的几何中心点为基准, 且只绘制 ImageView 大小的图像, 不同的是是否保持原图大小和绘图的目标不同、采取的手段不同。

Pinned Message
HOTODOGO
The Founder and CEO of Infeca Technology.
Developer, Designer, Blogger.
Big fan of Apple, Love of colour.
Feel free to contact me.
反曲点科技创始人和首席执行官。
开发、设计与写作皆为所长。
热爱苹果、钟情色彩。
随时恭候 垂询