2012-03-03 28 views
1

1〜3枚の写真が表示されます。ランタイムまで正確に何枚の写真がインターネットからダウンロードされるかわかりません。Android ACTION_VIEW複数の画像

写真を表示するためのインテントの作成方法を理解できません。今私は、私は(サンセリフのエラーチェック)のような何かを行うことによって作成したフォルダの下にSDカード上にキャッシュしています:

final File externalDirectory = Environment.getExternalStorageDirectory(); 
final String folder = externalDirectory.getAbsolutePath() + "/Android/data/" + packageName + "/files/"; 

これはAndroid Developer Referenceに説明しました。

私は次のようにして表示するように1枚の写真を取得することができます:fileが保存された写真のファイルをある

final Uri uri = Uri.fromFile(file); 
final Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(uri, "image/*"); 
Util.startActivity(this, intent); 

私のアプリで利用できる場所に画像を保存することはできますが、写真がユーザーの他の個人写真に表示されて迷惑をかけることがないようにすることをおすすめします。

画像ビューアにはメニューオプション「スライドショー」がありますので、複数の写真について知っている必要があります。

私は独自のイメージビューアを作成することができましたが、余計な作業のように思えます。私がこれを行ったとしても、私はサードパーティの画像ビューアをインストールして、パン、ズーム、共有、より良い経験を得ることができるようにしたい...

私はキャッシュされた写真ファイルウリを作成するにはイメージビューアに黒いページが表示されます。私がファイルを渡すと、そのファイルだけが表示され、他のファイルは表示されません。

私は手動でフォルダを選択した場合、ギャラリーアプリケーションを使用して写真を表示できるので、これが可能でなければならないことはわかっています。この問題を研究するたびに、複数の画像を表示することはできないとのコメントがあります。

私はいくつかの魔法の呪文があると思われますが、何ですか?

答えて

4

あなたの目標はあなたのコントロール外だと思います。ビューアアプリケーションが複数の画像やディレクトリを扱うように設計されている場合は、表示するように要求することができますが、ビューアのパターンに合わせて定義します。

QuickPicというサードパーティのイメージビューアをインストールしました。私はちょうどあなたのコードスニペットをテストし、システムは、フォルダ内の画像を表示するアプリを選択できるように選択ダイアログをポップアップ。ネイティブギャラリーを選択すると、空のフォルダになりますが、Quickpicは必要なときに機能します。

PS:

intent.setDataAndType(Uri.fromFile(new File("//mnt/sdcard/test/")), MimeTypeMap.getSingleton().getMimeTypeFromExtension("png")); 
+0

ありがとう:私は私のアプリのフォルダのウリこの方法を教えてください。私はこれを答えとしてマークしたいが、他の誰かが何かを考え出すことができるかどうかを知りたい。私はギャラリーアプリが私が望むことをしているのを見ることができるので、簡単ではないとしても方法が必要です。 – Mitch

+0

@Mitchギャラリーのソースコードを見直すことをお勧めします。あなたの仕事をするように設計されていると確信しています。私はそれがスライドショー機能を持っていることを知っているが、これはディレクトリに画像ファイルを表示するのと同じではありません。 – Huang

+0

私は自分の能力の中でそれを見直しました。私は、MIMEタイプがdirを示した場所を見たと思った。私はそれを使用しようとしましたが、私が言ったディレクトリのものだけでなく、電話上のすべての写真を見ました。あなたが望むことをする方法がないのは間違いないかもしれませんが、写真を見せて、サードパーティーの画像ビューアをインストールする必要があることを理解するのに十分なほど賢明ではないことに頼ることは重要です黒いスクリーン。私は彼らが単に私のアプリが壊れていると仮定すると確信しています。私が週末までに答えを得なければ、私はあなたの答えを驚くほど正しいものにします。 – Mitch