Je suis en train d'inclure l'image partage dans ma demande et que tout fonctionne, mais le sélecteur de part prend beaucoup de temps à apparaître sur les appareilsintention de l'action prend beaucoup de temps à apparaître
ici est ce que je fais:
J'ai ImageView « items_details_image » et je veux partager son image pour pouvoir l'envoyer par WhatsApp et d'autres applications
void ShareImg() {
try {
Uri bmpUri = getLocalBitmapUri(items_details_image);
if (bmpUri != null) {
// Construct a ShareIntent with link to image
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri);
shareIntent.setType("image/*");
// Launch sharing dialog for image
startActivity(Intent.createChooser(shareIntent, "Share Image"));
} else {
// ...sharing failed, handle error
}
} catch (Exception e) {
}
}
voici comment je reçois bitmap d'image URL
public Uri getLocalBitmapUri(ImageView imageView) {
// Extract Bitmap from ImageView drawable
Drawable drawable = imageView.getDrawable();
Bitmap bmp = null;
if (drawable instanceof BitmapDrawable){
bmp = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
} else {
return null;
}
// Store image to default external storage directory
Uri bmpUri = null;
try {
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS), "share_image_" + System.currentTimeMillis() + ".png");
file.getParentFile().mkdirs();
FileOutputStream out = new FileOutputStream(file);
bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
out.close();
bmpUri = Uri.fromFile(file);
} catch (IOException e) {
e.printStackTrace();
}
return bmpUri;
}
Je ne sais pas pourquoi il prend plus de temps que d'habitude comparer avec d'autres applications sur le même appareil, tels que la galerie ou tout
alors devrais-je faire une asynctask pour maintenir getLocalBitmapUri? –
@YazanAllahham: Encore mieux serait de faire autre chose. Ce 'ImageView' a son image de quelque part. Si ce "quelque part" existe déjà à un emplacement "Uri", utilisez simplement la source originale de l'image. – CommonsWare
Wooow! c'était fantastique ! Je vous remercie. puisque j'utilise UniversalImageLoader, je pourrais avoir l'image Uri dans l'événement onLoadingComplete de l'ImageLoader! ... vous m'avez sauvé des heures !!! –