独自のImageViewerを作成しましたが、AndroidネイティブのImageViewerのような機能としてSetを使用したいと考えています。Facebookにあるので今は可能です。わかりやすくするためにスクリーンショットを添付しました。
PS何がうまくいかないのかについてもっと詳しく説明したいと思います。メニューで「連絡先アイコン」を選択すると、連絡先のリストが表示されます。連絡先を選択すると、適用力が閉じます。「ホーム/ロック画面の壁紙」を選択すると、携帯電話のギャラリーが開きます。これが私のコードスニペットです:
Bitmap icon = mBitmap;
Intent setAs = new Intent(Intent.ACTION_ATTACH_DATA);
setAs.setType("image/jpg");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
icon.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
File f = new File(Environment.getExternalStorageDirectory() + File.separator + "/my_tmp_file.jpg");
try {
f.createNewFile();
FileOutputStream fo = new FileOutputStream(f);
fo.write(bytes.toByteArray());
} catch (IOException e) {
e.printStackTrace();
}
setAs.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/my_tmp_file.jpg"));
startActivity(Intent.createChooser(setAs, "Set Image As"));
また、マニフェストに結果として許可を追加し、電話のSDカードに画像を書き込むことができます。