Android: invia un'email con un'image da un ImageView

Sono nuovo qui allo stackoverflow. Ho un piccolo problema con la mia applicazione Android, specialmente con un ImageView che innesca un evento sul touch. Questo evento apre un client di posta elettronica con un text pre-scritto e dovrebbe albind l'image dell'image. So già che l'image dovrebbe essere convertita in una bitmap prima, quindi compressa e inviala al client di posta elettronica, ma sfortunatamente non sono un esperto di Android / Java per cui non riesco a trovare come farlo. Questo è il codice del metodo di posta elettronica:

nuovo codice qui sotto

  • Limitazione di trascinamento di ImageView in Android
  • Servizio di riconoscimento vocale di Google per la ricerca vocale
  • Mappe android v2 si blocca quando viene riaperto nel frammento
  • Dialogo di image di Android / Popup la stessa dimensione dell'image e nessun bordo
  • android: Sostituisci il contenitore di frammenti all'interno di un CoordinatorLayout
  • Mostra un PopupWindow centralizzato
  • Dove devo sostituire "String imageURI = null;" con ciò che l'email richiede come image. Grazie a tutti!

    EDIT:

    Ho riuscito a modificare il codice a questo, che non dà errori:

    public void sendMail(ImageView image){ Intent i = new Intent(Intent.ACTION_SEND); int imageURI = R.drawable.img1; i.setType("text/plain"); i.putExtra(Intent.EXTRA_EMAIL , new String[]{"destinatario@globelife.biz"}); i.putExtra(Intent.EXTRA_SUBJECT, "Oggetto"); i.putExtra(Intent.EXTRA_TEXT , "Globelife"); i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); i.setType("image/jpeg"); i.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://"+getPackageName()+"/"+imageURI)); try { startActivity(Intent.createChooser(i, "Send mail...")); } catch (android.content.ActivityNotFoundException ex) { Toast.makeText(Test01Activity.this, "Non sono presenti app per l'invio di e-mails.", Toast.LENGTH_SHORT).show(); } } 

    Ma devo cambiare "int imageURI = R.drawable.img1;" a "int imageURI = ImageView.src;" o qualcosa di simile

  • Invio di database Sqlite come allegato di posta elettronica in Android
  • Albind un PDF a un'email da un'applicazione Android - La dimensione del file è Zero
  • 4 Solutions collect form web for “Android: invia un'email con un'image da un ImageView”

    prova questo

     ImageView iv = (ImageView) findViewById(R.id.splashImageView); Drawable d =iv.getBackground(); BitmapDrawable bitDw = ((BitmapDrawable) d); Bitmap bitmap = bitDw.getBitmap(); File mFile = savebitmap(bitmap); 

    e poi

      Uri u = null; u = Uri.fromFile(mFile); Intent emailIntent = new Intent(Intent.ACTION_SEND); emailIntent.setType("image/*"); emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Hello..."); // + "\n\r" + "\n\r" + // feed.get(Selectedposition).DETAIL_OBJECT.IMG_URL emailIntent.putExtra(Intent.EXTRA_TEXT, "Your tsxt here"); emailIntent.putExtra(Intent.EXTRA_STREAM, u); startActivity(Intent.createChooser(emailIntent, "Send email...")); 

    e il metodo savebitmap

      private File savebitmap(Bitmap bmp) { String extStorageDirectory = Environment.getExternalStorageDirectory().toString(); OutputStream outStream = null; File file = new File(extStorageDirectory, temp + ".png"); if (file.exists()) { file.delete(); file = new File(extStorageDirectory, temp + ".png"); } try { outStream = new FileOutputStream(file); bmp.compress(Bitmap.CompressFormat.PNG, 100, outStream); outStream.flush(); outStream.close(); } catch (Exception e) { e.printStackTrace(); return null; } return file; } 
     Intent i = new Intent(Intent.ACTION_SEND); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.setType("image/jpg"); i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/Pictures/ image.jpg")); startActivity(i); 
     Intent intent=new Intent(Intent.ACTION_SEND); String[] recipients={"destinatario@domain.com"}; intent.putExtra(Intent.EXTRA_EMAIL, recipients); intent.putExtra(Intent.EXTRA_SUBJECT, "Oggetto"); intent.putExtra(Intent.EXTRA_TEXT , "Testo"); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setType("image/png"); intent.putExtra(Intent.EXTRA_STREAM,Uri.parse(“file///sdcard/Images/your_image.jpg”));//or you can pass the path of your image startActivity(Intent.createChooser(intent, "Send mail")); 

    // ri sposta la String imageURI=null;

     public void sendMail(ImageView image){ Intent i = new Intent(Intent.ACTION_SEND); Uri pngImageUri = Uri.parse(image); i.setType("image/png");//change here with image/png i.putExtra(Intent.EXTRA_EMAIL , new String[]{"destinatario@domain.com"}); i.putExtra(Intent.EXTRA_SUBJECT, "Oggetto"); i.putExtra(Intent.EXTRA_TEXT , "Testo"); i.putExtra(Intent.EXTRA_STREAM, pngImageUri); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.