通用图像加载器:同步加载裁剪中心图像(无图像视图)(Android,UIL)

时间:2014-05-25 18:45:29

标签: android universal-image-loader

我使用Universal Image Loader:

  • 同步加载图片

  • 修正方向

  • 裁剪中心(这不起作用)

  • 在内存不足的情况下完成所有这些工作

如果我可以使用Universal Image Loader,我不想自己缩放位图。我之所以提出这个问题,是因为我不知道使用Universal Image Loader是否可行。

我不想(或者不需要)使用ImageView加载位图我只需要一个位图,但庄稼中心就是它。这可能与UIL有关吗?我已经通过关于SO的问题解决了关于GH的问题,并且无法找到它的例子。

这是代码:

private Bitmap getBitmap(Uri uri, int width, int height) {
    DisplayImageOptions options = new DisplayImageOptions.Builder()
            .considerExifParams(true)
            .cacheOnDisk(true)
            .build();
    ImageSize size = new ImageSize(width, height);
    return mImageLoader.loadImageSync(uri.toString(), size, options);
}

谢谢大家!

1 个答案:

答案 0 :(得分:2)

我认为这就是BitmapProcessor的用途(尽管我自己还没有使用过lib)。

这就是我要做的事情:

// preProcessor gets to work before image gets cached, so cache will contain the cropped
// version
[...Builder...].preProcessor(new BitmapProcessor() {
    public Bitmap process (Bitmap src) {
        // Roughly assuming that the bitmap is bigger than the needed dimensions
        // but you get the idea
        int xOffset = (src.getWidth() - width) / 2;
        int yOffset = (src.getHeight() - height) / 2;
        Bitmap result = Bitmap.createBitmap(src, xOffset, yOffset, width, height);
        // not sure whether this is necessary or the calling logic does it
        // my guess is it does 'cause it's a simple check [if (src != result) src.recycle();]
        // and the lib is rather smart altogether. Check the docs, they probably mention this
        src.recycle();
        return result;
    }
})