Comment partager l'image de l'imageview?
J'ai ImageView et j'ai envie de partager son image.
Voici mon code,
btshare.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
View content = findViewById(R.id.full_image_view);
content.setDrawingCacheEnabled(true);
Bitmap bitmap = content.getDrawingCache();
File root = Environment.getExternalStorageDirectory();
File cachePath = new File(root.getAbsolutePath() + "/DCIM/Camera/image.jpg");
try
{
root.createNewFile();
FileOutputStream ostream = new FileOutputStream(root);
bitmap.compress(CompressFormat.JPEG, 100, ostream);
ostream.close();
}
catch (Exception e)
{
e.printStackTrace();
}
Intent shareIntent = new Intent(Intent.ACTION_SEND);
Uri phototUri = Uri.parse("/DCIM/Camera/image.jpg");
shareIntent.setData(phototUri);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_STREAM, phototUri);
startActivity(Intent.createChooser(shareIntent, "Share Via"));
}
});
lorsque j'appuie sur le bouton j'obtiens ces erreurs ?
01-13 06:00:19.282: W/System.err(6199): java.io.FileNotFoundException: /storage/emulated/0: open failed: EISDIR (Is a directory)
01-13 06:00:19.286: W/System.err(6199): at libcore.io.IoBridge.open(IoBridge.java:409)
01-13 06:00:19.286: W/System.err(6199): at java.io.FileOutputStream.<init>(FileOutputStream.java:88)
01-13 06:00:19.294: W/System.err(6199): at java.io.FileOutputStream.<init>(FileOutputStream.java:73)
01-13 06:00:19.294: W/System.err(6199): at com.safshari.mandegar.FullImageActivity$3.onClick(FullImageActivity.java:116)
01-13 06:00:19.294: W/System.err(6199): at android.view.View.performClick(View.java:4240)
01-13 06:00:19.294: W/System.err(6199): at android.view.View$PerformClick.run(View.java:17721)
01-13 06:00:19.298: W/System.err(6199): at android.os.Handler.handleCallback(Handler.java:730)
01-13 06:00:19.298: W/System.err(6199): at android.os.Handler.dispatchMessage(Handler.java:92)
01-13 06:00:19.298: W/System.err(6199): at android.os.Looper.loop(Looper.java:137)
01-13 06:00:19.302: W/System.err(6199): at android.app.ActivityThread.main(ActivityThread.java:5103)
01-13 06:00:19.302: W/System.err(6199): at java.lang.reflect.Method.invokeNative(Native Method)
01-13 06:00:19.302: W/System.err(6199): at java.lang.reflect.Method.invoke(Method.java:525)
01-13 06:00:19.302: W/System.err(6199): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
01-13 06:00:19.306: W/System.err(6199): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
01-13 06:00:19.306: W/System.err(6199): at dalvik.system.NativeStart.main(Native Method)
01-13 06:00:19.310: W/System.err(6199): Caused by: libcore.io.ErrnoException: open failed: EISDIR (Is a directory)
01-13 06:00:19.310: W/System.err(6199): at libcore.io.Posix.open(Native Method)
01-13 06:00:19.310: W/System.err(6199): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
01-13 06:00:19.310: W/System.err(6199): at libcore.io.IoBridge.open(IoBridge.java:393)
01-13 06:00:19.314: W/System.err(6199): ... 14 more
01-13 06:00:19.618: E/Genymotion(489): Could not open '/sys/class/power_supply/genymotion_fake_path/present'
que dois-je faire et quelles sont les permissions de mon programme ? J'ai déjà déclaré autorisations suivantes,
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
OriginalL'auteur Soheyl | 2014-01-13
Vous devez vous connecter pour publier un commentaire.
Essayer de code ci-dessous pour partager votre image:
Ajouter ces autorisations pour
AndroidMenifest.xml
pourquoi ai-je besoin d'autorisation caméra ? @zanky
Vous n'avez pas besoin d'ajouter que.J'ai déjà modifié mon code.
ne pas travailler avec ces trois autorisation et le code sur le dessus . via blutooth ne se passe rien et via d'autres programmes de son dit fichier non valide
aussi, j'ai un avertissement sur cette ligne qui dit cachepath jamais utilisé le Fichier cachePath = new File(de la racine.getAbsolutePath() + "/DCIM/Camera/image.jpg");
OriginalL'auteur Zankhna
Code Final donc n'importe qui peut utiliser pour enregistrer et partager l'image de imageview :
heureux de codage
Merci mais ça ne fonctionne pas. J'obtiens: java.io.IOException: Aucun fichier ou répertoire.
OriginalL'auteur Soheyl
Vous devez ajouter cette autorisation
OriginalL'auteur Aditya Kamath
essayez de créer un cache pour stocker cette image d'abord et puis de les partager parce que vous ne pouvez partager des images qui sont publics pour d'autres applications.Vous ne pouvez pas partager le contenu qui sont privés à la demande.
Contexte d'utilisation.getExternalCacheDir() pour créer le cache, puis de partager le contenu de ce cache
OriginalL'auteur
OriginalL'auteur Be Coool