2012-03-03 81 views
1

我有一張和三張照片我希望我的應用顯示。直到運行時,我纔會知道從互聯網上下載了多少照片。Android ACTION_VIEW多張圖片

我無法弄清楚如何創建一個意圖來顯示照片。現在我我做類似的東西(沒有錯誤檢查)創建一個文件夾下緩存他們在SD卡:

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

這在Android Developer Reference解釋。

我可以得到一張照片做,顯示如下:

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

file是保存照片的文件。

如果有幫助,我可以將圖像保存到提供給我的應用程序的任何位置,但我寧願沒有照片顯示了用戶的其他個人照片列爲可能令人反感。

圖像查看器有一個菜單選項「幻燈片」,所以它必須知道多張照片。

我可以創建自己的圖像瀏覽器,但是,似乎是額外的工作,超出了我我會合理預期。即使我這樣做,我希望用戶能夠安裝第三方圖像查看器,並獲得更好的平移,縮放,共享體驗......

我試過使用緩存照片文件的目錄創建Uri,但圖像查看器顯示黑色頁面。如果我傳入文件,它只顯示一個文件而不顯示其他文件。

我知道這一定是可能的,因爲我可以看到使用圖庫應用程序,並顯示照片,如果我手動選擇的文件夾。每次我研究這個問題時,評論說它不可能顯示多個圖像。

我懷疑有一些魔法咒語,但是什麼?

回答

4

我認爲你的目標超出了你的控制範圍。如果查看器應用程序旨在處理多個圖像或目錄,則可以讓它根據需要顯示,但是您已根據查看器的模式進行了定義。

我已經安裝了名爲QuickPic第三方的圖像瀏覽器。我只是測試了你的代碼片段,系統彈出一個選擇器對話框讓我選擇應用程序來顯示文件夾中的圖像。如果我選擇本地圖庫,我所看到的僅僅是一個空文件夾,而Quickpic正如我所願。

PS:我告訴我的應用程序的文件夾這樣的烏里:

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

謝謝。我會將此標記爲已回答,但我想看看是否有其他人可以提出某些問題。我可以看到Gallery應用程序做我想要的,所以一定有辦法,即使它不容易。 – Mitch 2012-03-05 03:54:21

+0

@Mitch我建議你查看圖庫的源代碼,以便你確信它是否被設計來完成你的任務。我知道它有一個幻燈片放映功能,但這不同於在目錄中顯示圖像文件。 – Huang 2012-03-05 04:40:56

+0

我確實對我的能力進行了審查。我以爲我看到了一個mime類型表示dir的地方。我試圖使用它,但我看到了手機上的所有照片,不僅僅是我告訴它的目錄。你很可能是對的,沒有辦法做我想做的事,但重要的是讓用戶看到照片,而不要依賴他們足夠的理解,以瞭解他們需要安裝第三方圖像查看器時,看到黑色屏幕。我相信他們會簡單地假設我的應用程序已損壞。如果我在本週末沒有得到答案,我會將您的答案標記爲非常正確。 – Mitch 2012-03-05 16:25:10