fresco キャッシュ イメージ フォーム loacl ストレージを共有するためのより高速で迅速なプロセスが必要
fresco がコールバックでビットマップを返すと、画像の取得に時間がかかります。
最初に画像の一時ファイルを保存し、次に画像のファイル パス URI を共有するインテント ニーズを介して直接ビットマップを共有することはできません。
ImageRequest imageRequest = ImageRequestBuilder
.newBuilderWithSource(httpUri(article.getImage())).setAutoRotateEnabled(true)
.build();
ImagePipeline imagePipeline = Fresco.getImagePipeline();
final DataSource<CloseableReference<CloseableImage>>
dataSource = imagePipeline.fetchDecodedImage(imageRequest, view.getContext());
dataSource.subscribe(new BaseBitmapDataSubscriber() {
@Override
public void onNewResultImpl(@Nullable Bitmap bitmap) {
if (dataSource.isFinished() && bitmap != null) {
String pathofBmp = MediaStore.Images.Media.insertImage(view.getContext().getContentResolver(), bitmap, "APp", null);
Uri bmpUri = Uri.parse(pathofBmp);
ShareCompat.IntentBuilder.from((Activity) parent.getContext())
.setChooserTitle(R.string.share)
.setText(format("%s via App %s", title, ""))
.setSubject(format("%s via App", title))
.setStream(bmpUri)
.setType("image/jpeg")
.startChooser();
dataSource.close();
}
dataSource.close();
}