AndroidImageView等比例缩放,限制最大值

效果如下:
在这里插入图片描述
代码如下:
1、使用如下代码是图片包括内容:

 android:layout_width="wrap_content"
 android:layout_height="wrap_content"

2、使用maxWidthmaxHeight限制图片最大宽高

    <ImageView
        android:id="@+id/item_left_img_iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxWidth="@dimen/dd_dp100"
        android:maxHeight="@dimen/dd_dp150"
        android:layout_centerVertical="true"
        android:src="@mipmap/ic_launcher"
        android:scaleType="fitCenter"
        android:gravity="start"
        android:padding="@dimen/dp_2"
        android:background="@drawable/bg_corner_5_e8e8e8"/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现 ImageView 的等比例缩放,可以使用以下步骤: 1. 获取需要显示的图片的宽度和高度。 2. 获取 ImageView 的宽度和高度。 3. 计算出图片的宽高比和 ImageView 的宽高比。 4. 如果图片的宽高比大于 ImageView 的宽高比,则将图片高度设置ImageView高度,同时根据比例计算出图片的宽度,并将其设置ImageView 的宽度。 5. 如果图片的宽高比小于 ImageView 的宽高比,则将图片的宽度设置ImageView 的宽度,同时根据比例计算出图片高度,并将其设置ImageView高度。 6. 将计算好的图片大小设置ImageView 中即可。 以下是示例代码: ```java // 获取图片的宽度和高度 BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(filePath, options); int imageWidth = options.outWidth; int imageHeight = options.outHeight; // 获取 ImageView 的宽度和高度 int imageViewWidth = imageView.getWidth(); int imageViewHeight = imageView.getHeight(); // 计算图片的宽高比和 ImageView 的宽高比 float imageRatio = (float) imageWidth / (float) imageHeight; float imageViewRatio = (float) imageViewWidth / (float) imageViewHeight; // 根据比例计算图片的大小 int scaledImageWidth = 0; int scaledImageHeight = 0; if (imageRatio > imageViewRatio) { scaledImageHeight = imageViewHeight; scaledImageWidth = (int) (scaledImageHeight * imageRatio); } else { scaledImageWidth = imageViewWidth; scaledImageHeight = (int) (scaledImageWidth / imageRatio); } // 设置图片的大小 Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, scaledImageWidth, scaledImageHeight, true); imageView.setImageBitmap(scaledBitmap); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值