我使用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);
}
谢谢大家!
答案 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;
}
})