imageview等比例缩放
时间: 2023-09-21 15:11:08 浏览: 88
imageView图片缩放
要实现 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);
```
阅读全文