2

画像ビューで円グラフを生成しています。メールで送信したいと思います。

リソースで利用できないため、画像ビューの画像を電子メールの添付ファイルに変換するにはどうすればよいですか?

4

3 に答える 3

7

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(....);
于 2012-05-10T16:35:12.783 に答える
0

最も簡単で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"));
于 2012-05-10T02:33:54.180 に答える
0

ここでは多くの追加作業が行われているように思えます。実行時にImageViewを使用できる場合は、これをmImageViewと呼びます。次に、次のようにします。

Drawable mDrawable = mImageView.getDrawable();
Bitmap mBitmap = ((BitmapDrawable)mDrawable).getBitmap();

これで、添付ファイルとして電子メールに追加できるビットマップ画像ができました。これがあなたが探しているものを正確に実行することを100%確実にするためにプロトタイプを作成していませんが、ビットマップにストリーミングしてアタッチできるように、SDカードに保存するよりもはるかにエレガントなようですEメール。

それがうまくいかない場合は私に知らせてください、そして私は何かをプロトタイプ化しようとします

ありがとう、デビッド

于 2012-05-15T20:59:40.563 に答える