在网上查了好多资料,大致都雷同,大家都是互相抄袭的,看着很费劲,不好理解,自己总结一下,留着需要看的话来查找。

代码中的例子如下:

android:id="@+id/iv_bit_1"

android:layout_width="@dimen/passcode_width"

android:layout_height="@dimen/passcode_height"

android:scaleType="fitXY" />

android:id="@+id/iv_bit_2"

android:layout_width="@dimen/passcode_width"

android:layout_height="@dimen/passcode_height"

android:scaleType="fitXY" />

android:id="@+id/iv_bit_3"

android:layout_width="@dimen/passcode_width"

android:layout_height="@dimen/passcode_height"

android:scaleType="fitXY" />

android:id="@+id/iv_bit_4"

android:layout_width="@dimen/passcode_width"

android:layout_height="@dimen/passcode_height"

android:scaleType="fitXY" />

android:id="@+id/iv_bit_5"

android:layout_width="@dimen/passcode_width"

android:layout_height="@dimen/passcode_height"

android:scaleType="fitXY" />

android:id="@+id/iv_bit_6"

android:layout_width="@dimen/passcode_width"

android:layout_height="@dimen/passcode_height"

android:scaleType="fitXY" />

通过API的查询得知,

ImageView.ScaleType的结构为:

继承关系public static final enum ImageView.ScaleType extends Enum>

java.lang.Object

java.lang.Enum>

android.widget.ImageView.ScaleType

类概述将图片边界缩放,以适应视图边界时的可选项。

常量public static final ImageView.ScaleType CENTER

在视图中使图像居中,不执行缩放。 在 XML 中可以使用的语法: android:scaleType="center"。public static final ImageView.ScaleType CENTER_CROP均衡的缩放图像(保持图像原始比例),使图片的两个坐标(宽、高)都大于等于 相应的视图坐标(负的内边距)。图像则位于视图的中央。 在 XML 中可以使用的语法:android:scaleType="centerCrop"。public static final ImageView.ScaleType CENTER_INSIDE均衡的缩放图像(保持图像原始比例),使图片的两个坐标(宽、高)都小于等于 相应的视图坐标(负的内边距)。图像则位于视图的中央。 在 XML 中可以使用的语法:android:scaleType="centerInside"。public static final ImageView.ScaleType FIT_CENTER使用 CENTER 方式缩放图像。 在 XML 中可以使用的语法: android:scaleType="fitCenter"。public static final ImageView.ScaleType FIT_END使用 END 方式缩放图像。 在 XML 中可以使用的语法: android:scaleType="fitEnd"。public static final ImageView.ScaleType FIT_START使用 START 方式缩放图像。 在 XML 中可以使用的语法:android:scaleType="fitStart"。public static final ImageView.ScaleType FIT_XY使用 FILL 方式缩放图像。 在 XML 中可以使用的语法: android:scaleType="fitXY"。public static final ImageView.ScaleType MATRIX绘制时,使用图像矩阵方式缩放。图像矩阵可以通过 setImageMatrix(Matrix) 设置。在 XML 中可以使用的语法: android:scaleType="matrix"。用代码展示着几个属性的效果,效果截图:

主界面:

16685c88b6c2b85ccaaab91e222d0877.png

CENTER效果:

3a2eeaec728186f8501f6782b0803f35.png

CENTER_CROP效果:

3d7757647a166fb5f72136f635219e20.png

CENTER_INSIDE效果:

454a3fd20ec762e52ed45d6e97d7a0f6.png

FIT_CENTER效果:

f8622f3e206e021ed26af984d66c2dbb.png

FIT_START效果:

fe3647aa8efd39a3bc4cce7d1ddeff2a.png

FIT_END效果:

d7e442b4eff2e481859886957a46ab2d.png

FIT_XY效果:

fc041c9831e52f002a4ab02c8986e8fb.png

MATRIX效果:

1d357a0c38962b398af5817c79a9dd53.png

结果分析:我选取的原始图片明显标志如下:左上角有蝴蝶、花朵,右下角为一个蝗虫,且图片像素大于 320×480,各种类型的差异通过查看图片的明显标志即可窥见一斑。比如FIT_START,填充于屏幕上方,并等比例缩放;相反,FIT_END置于屏幕下方,而FIT_CENTER则在中间。CENTER_CROP裁剪了图片的中间部分填充屏幕。其它类型可自行查看分析。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐