私は画像ビューで円グラフを生成していますが、メールで送信したいと思います。イメージビューを電子メールの添付ファイルとして添付する方法は?
画像ビューの画像をメール添付ファイルに変換する方法は、リソースでは利用できないため、
私は画像ビューで円グラフを生成していますが、メールで送信したいと思います。イメージビューを電子メールの添付ファイルとして添付する方法は?
画像ビューの画像をメール添付ファイルに変換する方法は、リソースでは利用できないため、
コールgetDrawingCache()
:コードは次のようになります。ビューのキャッシュビットマップが返されます。ドキュメントhereを読んでください。
ビットマップをPNG形式で保存し、メールを作成して添付して送信します。
Bitmap bmp = imgView.getDrawingCache();
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_WORLD_READABLE);
bmp.compress(Bitmap.CompressFormat.PNG, 0, fos);
fos.close();
/* Create a Action_SEND intent and attach the FILENAME image to the mail. */
...
intent.putExtra(Intent.EXTRA_STREAM, FILENAME); // FILENAME is URI
...
startActivity(....);
最も簡単で最もAndroidに適した方法は、ACTION_SENDインテントを使用することです。あなたのイメージ図で
path = "/path/to/image/"
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
Uri screenshotUri = Uri.parse(path);
sharingIntent.setType("image/png");
sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
startActivity(Intent.createChooser(sharingIntent, "Share image using"));
しかし、私のイメージがデバイスに保存されていない、それは実行時に生成さをプロトタイプしようとしますなら、私に教えてください。どのように私はそれを添付する? – kaibuki
私はあなたのコードがどのように動作するのかわかりませんが、イメージを内部ストレージまたは外部ストレージに保存し、URIを取得することは苦痛ではありません。 – SeanPONeil
多くの追加作業がここで行われているように私に聞こえます。あなたは実行時に利用可能ImageViewのを持っている場合、我々はmImageViewそれを呼び出すよ、あなたはこのような何か行うことができ、:
Drawable mDrawable = mImageView.getDrawable();
Bitmap mBitmap = ((BitmapDrawable)mDrawable).getBitmap();
を今あなたが添付ファイルとして電子メールに付加することができますビットマップイメージを持っています。私はそれがあなたが探しているものを正確に行うことを100%確かめるためにプロトタイプしていませんが、SDカードに保存するよりもはるかにエレガントなように見えるので、ビットマップにストリームを戻してEメール。
は、それが動作しないと私は何か
おかげで、 デビッド
OPは画像をメールの添付ファイルとして送信したいと考えています。したがって、PNG形式が最適です。ビットマップの添付は問題ありません... – Ronnie
OPはDrawableにアクセスする方法を知りたい圧縮についての言及もなく、ビットマップが問題にならない理由もなかった。それはより大きなフォーマットであり、最適化として圧縮することができます。質問は画像自体にアクセスする方法を中心に行われます –
送信前にビットマップを圧縮しても問題はありません。なぜそれをしないのですか?なぜ誰かが損失のない圧縮を行い、そのサイズを小さくすることができれば、より大きな画像を送信したいでしょう。また、電子メールインテントはUriを受け取り、ビットマップ参照を受け入れません。最初に保存せずにイメージを送信することはできません。 – Ronnie
ImageviewにURIを与える方法は?私はFILENAMEを意味しました。 – DroidLearner