我想在实现PlatformBitmapFactory时创建一个CloseableReference 方法.of有两个工具,如果我使用第一个
private PlatformBitmapFactory bmpFactory = new PlatformBitmapFactory() {
@Override
public CloseableReference<Bitmap> createBitmap(int width, int height, Bitmap.Config bitmapConfig) {
CloseableReference<Bitmap> cr = CloseableReference
.of(Bitmap.createBitmap(width, height, bitmapConfig));
return cr;
}
};
这将是一个编译错误: CloseableReference中的(java.io.CloseableReference&amp; android.graphics.Bitmap)无法应用于(android.graphics.Bitmap)
但是,如果我使用第二个,我不知道如何创建ResourceReleaser。(实际上它是一个接口,一个CloseableReference的超类)
我应该如何在.of方法中输入参数?
编辑:
我想要实现的是创建Bitmap的引用,但不要使用我的应用程序的内存(就像DraweeView一样)。 我有两个要求:
一个是:获取一些新的位图的引用,与Bitmap.createBitmap()
相同,我会将它们的引用保存在List中,然后获取引用,进一步获取它们,另外在它们上绘制一些东西。(更多不止一次)
两个是:得到一个drawable的引用,它应该是一个位图,与BitmapFactory.decodeXXX()
相同。我会在全局变量中保存它的引用,然后获取引用,进一步获取它,使用它Canvas canvas = new Canvas(Bitmap);(不止一次)
现在我尝试像PlatformBitmapFactory ArtBitmapFactory
int sizeInBytes = BitmapUtil.getSizeInByteForBitmap(width, height, bitmapConfig);
Bitmap bitmap = mBitmapPool.get(sizeInBytes);
Bitmaps.reconfigureBitmap(bitmap, width, height, bitmapConfig);
return CloseableReference.of(bitmap, mBitmapPool);
但记忆力增加了。