我有一個類有一個圖像的引用。該圖像可以位於服務器上或應用程序的可繪製資源中。我需要存儲圖像文件的url或可繪製位置的位置。 爲了解決這個問題,我使用了Uri作爲這個類的屬性。使用URI來存儲圖像URL或圖像路徑
首先,這是一個正確的解決方案嗎? 然後,我該如何檢查Uri是否具有對drawable的引用或對URL的引用? 如何在Uri中存儲可繪製資源的位置?
我有一個類有一個圖像的引用。該圖像可以位於服務器上或應用程序的可繪製資源中。我需要存儲圖像文件的url或可繪製位置的位置。 爲了解決這個問題,我使用了Uri作爲這個類的屬性。使用URI來存儲圖像URL或圖像路徑
首先,這是一個正確的解決方案嗎? 然後,我該如何檢查Uri是否具有對drawable的引用或對URL的引用? 如何在Uri中存儲可繪製資源的位置?
你建議的是一個解決方案。很難說如果這是正確解決方案沒有看到一些代碼。
我還沒有嘗試過這個自己,但顯然你能夠使用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上圖像的輸入流。
Uri uri = Uri.parse("string");
在這個字符串中,您可以傳遞url或圖像的名稱或路徑。
好的,謝謝!我要試一下。還有一個問題...... URI和Uri有什麼區別?我已閱讀文檔,但我沒有得到它... –
看看http://stackoverflow.com/a/1984225/1266551在我的例子中,Uri標識了一個特定的資源,但它沒有提到它的位置。由內容解析器決定實際在Uri中找到內容的位置併爲其提供輸入流。 – britzl