做项目的过程中,由于原来使用下载可以直接返回bitmap,这样可以直接通过bitmap得到宽高,然后进行缩放处理,但是下载逻辑修改,不返回bitmap让我们叫bitmap传递给他,然后某人在框架中帮我们设置,但是此时就会有一个问题,bitmap得不到,设置之后的图片的大小就无从考量,使得我们需要通过imageview得到它身上的图像,然后做调整
好了,不说废话了,需要涉及到三个方面
1. 图像的缩放
bw 图像的宽, bh 图像的高 baseSize 预期的尺寸
思路以后再补充
2.将drawable转换成bitmap,然后重新显示
代码如下:
public class ImageUtils {
/**
* 对bitmap进行处理
*/
public static Bitmap scaleBitmap(Bitmap bitmap, int baseSize) {
int width = bitmap.getWidth();
int height = bitmap.getHeight();
if (baseSize == 0) {
baseSize = AppConstant.IMG_BASE_SIZE;
}
if (width == height && width == baseSize) {
// bitmap的尺寸就是预期的尺寸就直接返回不需要缩放
LogUtils.log("不需要缩放");
return bitmap;
}
// 1.图片是否超过限定值
// 2.图片宽或高是否大于限定值
int[] imageSize = calcImageSize(width, height, baseSize);
// 这里就不能使用这个方式了,需要放大
return Bitmap.createScaledBitmap(bitmap, imageSize[0], imageSize[1], true);
}
/**
* 对bitmap进行处理
*/
public static void scaleDrawable(ImageView imageView) {
// 80*80的图片
/*Bitmap bitmap1 = getBitMapFromIv(imageView);
// bw = 480,bh = 80
Bitmap bitmap2 = getBitMapFromIv2(imageView);
// bw = 480,bh = 80
ImageSize imageSize = getDrawableSize(imageView);
// bw = 80,bh = 80
scaleAu4(imageV