如何使用Fresco

时间:2016-05-13 04:15:57

标签: android fresco

我想在实现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);

但记忆力增加了。

0 个答案:

没有答案