可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I'm new here on stackoverflow. I have a little problem with my Android app, expecially with an ImageView that triggers an event on tap. This event opens an email client with some pre-written text and it should attach the image of the Image. I already know that the image should be converted into a bitmap before, then compressed and send it to the email client, but unfortunatly I'm not an Android/Java expert so I can't find how to do that. This is the code of the email method:
new code below
Where I have to replace "String imageURI = null;" with what the email needs as image. Thank you all!
EDIT:
I managed to edit my code to this, that gives no errors:
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(); } }
But I need to change "int imageURI = R.drawable.img1;" to "int imageURI = ImageView.src;" or something like that
回答1:
try this
ImageView iv = (ImageView) findViewById(R.id.splashImageView); Drawable d =iv.getBackground(); BitmapDrawable bitDw = ((BitmapDrawable) d); Bitmap bitmap = bitDw.getBitmap(); File mFile = savebitmap(bitmap);
and then
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..."));
and savebitmap method
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; }
回答2:
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);
回答3:
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"));
回答4:
//re move the 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);