я нашел рабочего решения для моей проблемы после прочтения на глиссаде и в кеше в Picasso, так что логика, которую я получил, была: Когда скольжение загружает изображение успешно, тогда установите растровое изображение в изображение, а затем, так как изображение было кэшировано, используйте кешированное изображение и используйте изображение, как если бы оно было обычным образом, а затем передало его в намерение совместного использования, которое вы или я бы определил. код: EventfaceImage является ImageView я определен,
Glide.with(context).load(uri).asBitmap().diskCacheStrategy(DiskCacheStrategy.ALL)
.dontAnimate().into(new BitmapImageViewTarget(EventfaceImage) {
@Override
public void onResourceReady(final Bitmap bmp, GlideAnimation anim) {
share.setVisibility(View.VISIBLE);
EventfaceImage.setImageBitmap(bmp);
share.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
menu_float.close(true);
prepareShareIntent(bmp);
}
});
}
@Override
public void onLoadFailed(Exception e, Drawable errorDrawable) {
super.onLoadFailed(e, errorDrawable);
}
});
затем prepareShareIntent(); метод
private void prepareShareIntent(Bitmap bmp) {
Uri bmpUri = getLocalBitmapUri(bmp); // see previous remote images section
// Construct share intent as described above based on bitmap
shareIntent = new Intent();
shareIntent.setPackage("com.whatsapp");
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_TEXT, getResources().getString(R.string.shared_via) );
shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri);
shareIntent.setType("image/*");
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(shareIntent, "Share Opportunity"));
}
private Uri getLocalBitmapUri(Bitmap bmp) {
Uri bmpUri = null;
File file = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "share_image_" + System.currentTimeMillis() + ".png");
FileOutputStream out = null;
try {
out = new FileOutputStream(file);
bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
bmpUri = Uri.fromFile(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return bmpUri;
}
Это работает для меня в API 22 .so я надеюсь, что это поможет кому-то, но я не проверял во всех АФИ в андроиде, если оленья кожа, пожалуйста, дайте мне знать, и я посмотрю, что я могу хак. также не стесняйтесь улучшать код и делиться тем, что работает для вас тоже
Перекресток https://github.com/bumptech/glide/issues/1439 – TWiStErRob