ImageView静态设置参数

需求:一个尺寸原比例完整显示

  1. 在 ImageView 的使用过程中,我需要 指定一个参数layout_width,而另一个参数设置为 wrap_content
  2. 我希望图片保持 原比例 显示在控件上;
  3. 我希望图片 完整显示 在控件上,如果图片小于控件那么就按比例放大,如果图片小与控件那就按比例缩小

代码实现

<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:scaleType="centerCrop"
    android:src="@drawable/ic_launcher" />

注释

  1. android:adjustViewBounds="true" 即:调整 ImageView 的尺寸来保持图像纵横比不变。
    1. 使用这个参数,必须有一个边界是固定的,如果 ImageView 的宽高都是 wrap_content 那么这句设置是无效的;
    2. 并不意味着,ImageView 的宽高比一定等于图片的宽高比。这是因为,当仅使用该句时,如果图片的宽小于 ImageView 中指定的宽时那么 ImageView 的高就是图片的高,而宽并不填充;如果图片的宽 大于等于 ImageView 指定的宽时,此时 ImageView 的高将会根据图片比例设置;
  2. android:scaleType="centerCrop" 即:控件中心和原始图片中心重叠,图片等比例缩放;以原图填满 控件 为目的;原图不见得一定会完全显示
    1. 如果原图比例 > 控件比例,则按照控件高 / 图片高进行等比例缩放,保证图片宽度在进行同等比例缩放的时候,图片宽度大于或等于控件的宽度;
    2. 如果原图比例 < 控件比例,则按照控件宽/图片宽进行等比例缩放,保证图片高度在进行同等比例缩放的时候,图片高度大于或等于控件的高度。
  3. android:scaleType="centerInside" 即:以原图正常显示为目的
    1. 如果原图size 大于 ImageView 的 size,就按照比例缩小原图的宽高,居中显示在ImageView中。
    2. 如果原图 size 小于 ImageView 的 size,则不做处理居中显示图片。
    3. 注意:这个看似完美的属性,其实不符合我们的要求,因为我这里只有一个参数固定,如果使用这句,那么控件的高,将会按照图片比例进行缩放空间大小;这就出现如下情况,对于小图我希望像图一所示,但实际上,结果是图二;
      在这里插入图片描述
      在这里插入图片描述
  4. android:src="@drawable/ic_launcher" src 存放的是原图的大小,不会进行拉伸;background会根据 ImageView 组件给定的长宽进行拉伸。src 是设置图标,而background只是设置背景。
  5. 如果事先大概知道图片比空间尺寸大,那么可以使用本方法;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

liusaisaiV1

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值