2017-01-30 1 views
0

Fresco libのSimpleDraweeViewからBitmapを取得してSDカードに保存します。 SimpleDraweeViewので、それはgetDrawable()をサポートする必要がありますImageViewの子クラスであるが、このためwayoutある何このメソッドはClassCastExceptionSimpleDraweeViewからビットマップを取得するには?

BitmapDrawable bitmapDrawable = (BitmapDrawable) viewHolder.drawee.getDrawable(); 

ClassCastException: com.facebook.drawee.generic.RootDrawable cannot be cast to android.graphics.drawable.BitmapDrawable 

をスローします呼び出しますか?

+0

このページのメインダイアグラム(http://frescolib.org/docs/intro-image-pipeline.html)について、あなたが達成しようとしていることを説明できますか? –

+0

ビットマップがSimpleDraweeViewでレンダリングされた後、それが最後の段階です。ビュー上のイメージをビットマップとして抽出します。 –

+0

あなたの努力のおかげでモリソンありがとうございます:この質問は、http://stackoverflow.com/q/30751577/295004とこの答えは有望見える:http://stackoverflow.com/a/31769964/295004 –

答えて

1

モリソンによって言及されたs1riusの答えが私を助けました。ここで私が使用したコードがあります。

ImageRequest downloadRequest = ImageRequest.fromUri(uri); 

CacheKey cacheKey = DefaultCacheKeyFactory.getInstance().getEncodedCacheKey(downloadRequest, context); 

if (ImagePipelineFactory.getInstance().getMainFileCache().hasKey(cacheKey)) { 
    BinaryResource resource = ImagePipelineFactory.getInstance().getMainFileCache().getResource(cacheKey); 
    File cacheFile = ((FileBinaryResource) resource).getFile(); 
    File savedImageFile = new File(Constants.APP_PATH_SAVED_QUOTES, "M1iS1" + "_" + currentPosition + ".jpg"); 
} 

その後、私はsavedImageFilecacheFileをコピーしました。

関連する問題