一起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的缩放"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值