1

SimpleDraweeView は、ピクセル化されたビットマップ イメージを外部ストレージから読み込んでいます。

ここに画像の説明を入力

これを介して、アセットフォルダーから外部ストレージに画像をコピーしています

private OutputStream copy(InputStream in, OutputStream out) throws IOException{
    // Transfer bytes from in to out
    byte[] buf = new byte[in.available()];
    int len;
    while ((len = in.read(buf)) > 0) {
        out.write(buf, 0, len);
    }
    in.close();
    out.close();
    return out;
}

次に、これを介してSimpleDraweeViewの画像を設定しています

Fresco.getImagePipeline().evictFromMemoryCache(uri);
    Fresco.getImagePipelineFactory().getMainDiskStorageCache().remove(new SimpleCacheKey(uri.toString()));
    Fresco.getImagePipelineFactory().getSmallImageDiskStorageCache().remove(new SimpleCacheKey(uri.toString()));

    Postprocessor postprocessor = new BasePostprocessor() {
        @Override
        public void process(Bitmap bitmap) {

            });
        }
    };

    ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
            .setPostprocessor(postprocessor)
            .build();

    PipelineDraweeController controller = (PipelineDraweeController)
            Fresco.newDraweeControllerBuilder()
                    .setImageRequest(request)
                    .setOldController(header.getController())
                    .build();

    header.setController(controller);
4

1 に答える 1

0

これは既知のバグでした。Fresco 0.9.0 で修正されました。この問題がまだ発生している場合は、もう一度試して、新しい GitHub の問題を開いてください。

于 2016-02-08T11:55:30.407 に答える