画像ビューで円グラフを生成しています。メールで送信したいと思います。
リソースで利用できないため、画像ビューの画像を電子メールの添付ファイルに変換するにはどうすればよいですか?
画像ビューで円グラフを生成しています。メールで送信したいと思います。
リソースで利用できないため、画像ビューの画像を電子メールの添付ファイルに変換するにはどうすればよいですか?
getDrawingCache()
画像ビューを呼び出します。これにより、ビューのキャッシュビットマップが返されます。ここでドキュメントを読んでください。
ビットマップを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"));
ここでは多くの追加作業が行われているように思えます。実行時にImageViewを使用できる場合は、これをmImageViewと呼びます。次に、次のようにします。
Drawable mDrawable = mImageView.getDrawable();
Bitmap mBitmap = ((BitmapDrawable)mDrawable).getBitmap();
これで、添付ファイルとして電子メールに追加できるビットマップ画像ができました。これがあなたが探しているものを正確に実行することを100%確実にするためにプロトタイプを作成していませんが、ビットマップにストリーミングしてアタッチできるように、SDカードに保存するよりもはるかにエレガントなようですEメール。
それがうまくいかない場合は私に知らせてください、そして私は何かをプロトタイプ化しようとします
ありがとう、デビッド