2013-05-22 88 views
0

我有一個類有一個圖像的引用。該圖像可以位於服務器上或應用程序的可繪製資源中。我需要存儲圖像文件的url或可繪製位置的位置。 爲了解決這個問題,我使用了Uri作爲這個類的屬性。使用URI來存儲圖像URL或圖像路徑

首先,這是一個正確的解決方案嗎? 然後,我該如何檢查Uri是否具有對drawable的引用或對URL的引用? 如何在Uri中存儲可繪製資源的位置?

回答

1

你建議的是一個解決方案。很難說如果這是正確解決方案沒有看到一些代碼。

我還沒有嘗試過這個自己,但顯然你能夠使用URI來像這樣的繪製:

Uri uri = Uri.parse("android.resource://your.package.here/drawable/image_name"); 
InputStream stream = getContentResolver().openInputStream(uri); 

這意味着你應該能夠到URI存儲爲SharedPreferences字符串。下次需要加載圖像時,您需要從SharedPreferences中檢索URI字符串,如果字符串以「android.resource://」開頭,則使用內容解析器和BitmapFactory.loadStream()加載圖像。如果字符串不以「android.resource://」開頭,則使用您決定給我們的任何Http框架(OkHttp,UrlConnection,Android Async Http等)獲取Web上圖像的輸入流。

+0

好的,謝謝!我要試一下。還有一個問題...... URI和Uri有什麼區別?我已閱讀文檔,但我沒有得到它... –

+0

看看http://stackoverflow.com/a/1984225/1266551在我的例子中,Uri標識了一個特定的資源,但它沒有提到它的位置。由內容解析器決定實際在Uri中找到內容的位置併爲其提供輸入流。 – britzl

0
Uri uri = Uri.parse("string"); 

在這個字符串中,您可以傳遞url或圖像的名稱或路徑。