画像をビューアで表示させる
分かってしまえば単純なんだけど、答えが分かるまではさっぱりという話。
file:///mnt/sdcard/somewhere/test.jpg
のようなURIを持っているとして、このファイルをいかにしてビューアで開くかという話。答えから言うと、
Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(imageUri, "image/jpeg"); startActivity(intent);
これが、
Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(imageUri); intent.setType("image/jpeg"); startActivity(intent);
じゃダメだし、
Intent intent = new Intent(Intent.ACTION_VIEW); intent.putExtra(Intent.EXTRA_STREAM, imageUri); intent.setType("image/jpeg"); startActivity(intent);
でもダメ。
でも、ACTION_SENDなら、
Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_STREAM, item._imageUri); intent.setType("image/jpeg"); startActivity(intent);
みたいな感じで行ける。
この辺の仕組みの違いがさっぱり分からない。
どういう使い分けなんだろうか?