22

私はこのコードを持っています:

 Intent intent = new Intent(); 
 intent.setAction(Intent.ACTION_SEND); 
 startActivity(intent); 

これにより、Android でメッセージング アプリが正常に起動されます。

しかし、インテントを起動するときに Bitmap オブジェクトをアタッチするにはどうすればよいでしょうか?

http://developer.android.com/reference/Android/content/Intent.htmlを読みました。必要なものに最も近いのは、次のような EXTRA_STREAM です。

Intent2.putExtra(Intent.EXTRA_STREAM, _uri);

しかし、私の場合、Bitmap の URI ではなく、Bitmap オブジェクトの参照があります。

Bitmap オブジェクトをアタッチする方法を教えてください。

4

4 に答える 4

23

最初にビットマップをファイルに保存する必要があります。アプリのキャッシュに保存できます

private void shareBitmap (Bitmap bitmap,String fileName) {
    try {
        File file = new File(getContext().getCacheDir(), fileName + ".png");
        FileOutputStream fOut = new FileOutputStream(file);
        bitmap.compress(CompressFormat.PNG, 100, fOut);
        fOut.flush();
        fOut.close();
        file.setReadable(true, false);
        final Intent intent = new Intent(     android.content.Intent.ACTION_SEND);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
        intent.setType("image/png");
        startActivity(intent);
    } catch (Exception e) {
        e.printStackTrace();
    }

}
于 2015-09-28T17:57:38.897 に答える
3

これを試してみてください:

ByteArrayOutputStream bos = new ByteArrayOutputStream();  
yourbitmapimagename.compress(CompressFormat.PNG, 0, bos);
Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_SEND); 
intent.setType("*/*"); 
intent.putExtra(Intent.EXTRA_STREAM, bos.toByteArray());
startActivity(intent); 
于 2013-06-18T07:21:01.820 に答える