一起Talk Android吧(第五百四十回:ImageView的缩放)

文章目录

  • 概念介绍
  • 实现方法
  • 示例代码
  • 经验分享

各位看官们大家好,上一回中咱们说的例子是"RxJava中的总结",本章回中介绍的例子是"I mageView的缩放"。闲话休提,言归正转,让我们一起Talk Android吧!

概念介绍

通常情况下ImageView组件主要用来显示图片,因此需要使用图片当作显示内容,这个可以通过ImageView的src属性来设置被显示的图片,不过ImageView的大小和图片的大小不一样,因此需要对ImageView中的图片做缩放,让图片铺满整个ImageView或者占用ImageView一定的比例。本章回主要介绍如何对图片进行缩放。

实现方法

我们可以使用ImageVie组件使用scaleType属性来设置图片的缩放,默认的属性值为CNETER,不会对图片进行缩放,常用的属性值如下:

  • 如果想让图片铺满整个ImageView可以使用FIT_XY,不过图片会有拉伸现象;
  • 如果想让图片铺满整个ImageView可以使用CENTER_CROP,不过它会对图像做剪裁,因为它缩放图片时直到x和y方向都大于ImageView时才停止缩放;
  • 如果想让图片不拉伸可以使用FIT_CENTER属性,但是它不会铺满整个ImageView,只要x或者y方向中的任何一个方向铺满ImageView时就不再缩放图片;

Android推出约束布局后也可以使用ImageFilterView组件来显示图片,在该组件中可以使用imageZoom属性来缩放图片,当然了,也可以使用scaleType属性。因为它是ImageView的子类。

该组件的imageZoom属性是以图片中心为圆心向x和y正方向进行缩放的,不能对x和y方向进行设置,因此缩放后的图片偏向右下角,如果缩放尺寸超过ImageFilterView,那么对图片进行剪裁。我的建议是如果对缩放方向没有要求,比如不要求居中显示图片,可以使用此属性对图片进行缩放。

注意:两个在此组件中这两个属性只能2选1,如果两个属性都设置了,imageZoom属性优先起作用。

示例代码

<androidx.constraintlayout.utils.widget.ImageFilterView
    android:src="@drawable/ic_icon"
    android:scaleType="centerCrop"
    app:imageZoom="1.2"
</androidx.constraintlayout.utils.widget.ImageFilterView>

在上面的代码中我们使用了两种属性,不过只有imageZoom属性起作用。imageVeiw组件的使用方法和它类似,我们不再列出示例代码。

经验分享

我通常使用CENTER_CROPFIT_CENTEER两种情况多一些,因为这两个属性值不但可以缩放图片而且会让图片居中显示。

关于图片的scaleType属性还有其它的属性值可以设置,大家可以参考官方文档。此外,我们建议大家动手去实践一下,只有看到实际效果了才能明白这些属性值的含义。

看官们,关于"ImageView的缩放"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

你可能感兴趣的:(一起Talk,Android吧,android,imagleView缩放,imageFiterView)