使用通用映像加载器加载后调整位图大小

sha*_*her 6 android bitmap universal-image-loader

我正在使用Universal Image Loader加载图像,我想缩放它以使宽度是屏幕的宽度并相应地缩放高度,这意味着在加载图像之前我知道我想要的宽度,但不是高度.因此,当我加载图像时,我想获得图像的高度和宽度,并根据屏幕的宽度使用它来缩放图像.我用来做这个的代码是这样的:

try {
    display.getSize(size);
    scaledWidth = size.x;
} catch (java.lang.NoSuchMethodError ignore) {
    scaledWidth = display.getWidth();
}

String filePath = "file://" + getBaseContext().getFilesDir().getPath().toString() + "/" + imagePath + ".png";
Bitmap bitmap = imageLoader.loadImageSync(filePath);
int height = bitmap.getHeight();
int width = bitmap.getWidth();
scaledHeight =  (int) (((scaledWidth * 1.0) / width) * height);
//Code to resize Bitmap using scaledWidth and scaledHeight
Run Code Online (Sandbox Code Playgroud)

使用通用图像加载器调整位图大小的最佳方法是什么,甚至更好,有没有一种方法可以只指定宽度,并根据比例正确缩放位图?

Pet*_*hao 9

你不需要自己动手.考虑使用ImageScaleType.EXACTLY

new DisplayImageOptions.Builder().imageScaleType(ImageScaleType.EXACTLY)
Run Code Online (Sandbox Code Playgroud)

https://github.com/nostra13/Android-Universal-Image-Loader/blob/master/library/src/com/nostra13/universalimageloader/core/assist/ImageScaleType.java


nit*_*oel 2

使用可以使用

// Load image, decode it to Bitmap and return Bitmap to callback
ImageSize targetSize = new ImageSize(120, 80); // result Bitmap will be fit to this size
imageLoader.loadImage(imageUri, targetSize, displayOptions, new SimpleImageLoadingListener() {
    @Override
    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
        // Do whatever you want with Bitmap
    }
});
Run Code Online (Sandbox Code Playgroud)