2010-12-07 6 views
1

J'ai un ensemble de fichiers jpg stockés dans le dossier drawable de mon application. J'aimerais pouvoir laisser les utilisateurs appuyer sur un bouton qui leur permet d'envoyer un de ces jpg. J'ai compris que je peux utiliser une intention ACTION_SEND, mais j'ai du mal à obtenir le jpg dans mon dossier drawable attaché à l'intention. J'ai lu quelques autres messages du forum et il semble que le chemin à parcourir est d'obtenir mon jpg sauvegardé sur la carte SD externe de l'utilisateur, puis y faire référence. Comment puis-je copier le fichier jpg depuis le dossier drawable de mon application sur la carte SD externe de l'utilisateur?Android: envoyer une image locale à l'aide du MMS

+0

Avez-vous essayé l'approche suggérée? – Zelimir

Répondre

0

Pour copier l'image des ressources au fichier d'image dans le répertoire des images sur la carte SD, vous pouvez utiliser l'approche suivante:

Bitmap resourceImage = BitmapFactory.decodeResource(this.getResources(), R.drawable.resource_image1);  
File externalStorageFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "resource_image1.jpg"); 
ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
resourceImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 
byte b[] = bytes.toByteArray(); 

try 
{ 
    externalStorageFile.createNewFile(); 
    OutputStream filoutputStream = new FileOutputStream(externalStorageFile); 
    filoutputStream.write(b); 
    filoutputStream.flush(); 
    filoutputStream.close(); 
} 
catch (IOException e) 
{ 
} 

Ensuite, vous pouvez spécifier comme pièce jointe d'image dans l'intention de ACTION_SEND.