好吧,我必須有一個簡單的方法,我在這裏想念,但我畫了一個空白。我有一個自定義的ListView
,它從外部存儲器上的一些文件中獲取一些圖像,一些從互聯網上獲取它們的圖像,並且如果它們都沒有從可繪製文件夾中顯示PNG文件。對於我的邏輯,我需要能夠判斷String
(圖片位置)是URL類型還是文件類型。如何測試String是否爲URL格式?
那麼,我將如何能夠判斷String
是URL格式還是文件格式?
好吧,我必須有一個簡單的方法,我在這裏想念,但我畫了一個空白。我有一個自定義的ListView
,它從外部存儲器上的一些文件中獲取一些圖像,一些從互聯網上獲取它們的圖像,並且如果它們都沒有從可繪製文件夾中顯示PNG文件。對於我的邏輯,我需要能夠判斷String
(圖片位置)是URL類型還是文件類型。如何測試String是否爲URL格式?
那麼,我將如何能夠判斷String
是URL格式還是文件格式?
格式錯誤的URL會給你一個例外。要知道您的網址是否有效,您必須執行與該網址的握手。
我沒有其他方式知道。
使用URI
通過嘗試解析你的字符串:
try {
new URI(theString);
} catch (URISyntaxException e) {
// Certainly not an URL
}
你將不得不作出額外的檢查,如檢查此URI的方案(或調用它.toURL()
並檢查它不會引發MalformedURLException
) 。
你不能檢查協議嗎?像文件:/ /本地和http://或類似的網址?並且如果本地文件的類型爲/ mnt/sdcard,而urls的類型爲protocol:// domain/path。這很難嗎? – ppsreejith
這是一種可能性,當然,我不得不使用'Environment.getExternalStorageDirectory()。getAbsolutePath()'而不是硬編碼'/ mnt/sdcard'。 「這很難嗎?」 - 這是個人認知的問題,與所問的問題無關。 – chRyNaN