2014-10-28 25 views
0

我仍然對從XML中的SDCard調用圖像感到困惑。我在Android上使用XmlPullParser來解析我的XML。但我未能在SDCard上加載文件。在Android上使用SDCard從XML中定義圖像

這是我的XML:

<image> 
    <imageproperty> 
     <id>1</id> 
     <title>Image1</title> 
     <thumb_url>file:///mnt/sdcard/image1.png</thumb_url> 
    </imageproperty> 
    <imageproperty> 
     <id>2</id> 
     <title>Image2</title> 
     <thumb_url>file:///mnt/sdcard/image1.png</thumb_url> 
    </imageproperty> 
</image> 

但是,我使用的URL從網絡,它可以被加載。

<image> 
    <imageproperty> 
     <id>1</id> 
     <title>image1</title> 
     <thumb_url>http://yazeen.mywapblog.com/files/browser-opera-2.png</thumb_url> 
    </imageproperty> 
    <imageproperty> 
     <id>2</id> 
     <title>image2</title> 
     <thumb_url>http://yazeen.mywapblog.com/files/browser-opera-2.png</thumb_url> 
    </imageproperty> 
</image> 

有什麼建議嗎?也許,我想念什麼。

謝謝!

+0

首先檢查文件路徑你的項目 – 2014-10-28 06:55:35

+0

謝謝。但是,XML中的文件不是在java:D – Yossi 2014-10-28 07:32:47

+0

只是你認爲有SD卡文件存儲在SD卡中,所以你可以創建文件路徑和檢查文件是否存在 – 2014-10-28 07:35:19

回答

0

不好的做法:file:///mnt/sdcard/image1.png

標準的做法:Environment.getExternalStorageDirectory()

使用固定的路徑訪問外部存儲目錄是一個不好的做法,因爲這可能會或可能不會與所有設備正常工作,不要」不要忘記,Android的設備種類繁多。

訪問外部存儲目錄的標準做法是使用Environment.getExternalStorageDirectory()

解決方案:

當你的XML包含<thumb_url>file:///mnt/sdcard/image1.png</thumb_url>,只是把image1.png,而沒有給完整路徑。無論您在何處訪問此值,只需將其嵌入Environment.getExternalStorageDirectory()返回的值即可。

例子:

String mParsedImageName = "image1.png"; 
String mImageUrl = Environment.getExternalStorageDirectory()+"/"+mParsedImageName; 
+0

謝謝。在XML Environment.getExternakStorageDirectory()不能訪問。但是和「/ storage/sdcard0 /」一樣,仍然不起作用。 – Yossi 2014-10-28 07:19:52

+0

是的,這是java代碼。檢查更新的答案。 – 2014-10-28 07:22:12

+0

仍然不起作用。 :) 該算法應該可以,但執行不起作用 – Yossi 2014-10-28 07:30:43

0

試試這個有文件或不同時檢查讀取外部Storgae Pessmission符合條件語句.. 檢查可能SD卡路徑

  if(new File("/storage/sdcard").exists()) 
      { 
       //your code 
      } 
      else if(new File("/storage/sdcard0").exists()) 
      { 
       //your code 
      } 
      else if(new File("storage/sdcard1").exists()) 
      { 
       //your code 
      } 
      else if(new File(Environment.getExternalStorageDirectory().getAbsolutePath()).exists()) 
      { 
       //your code 
      } 
      else 
      { 
       //your code 
      } 
+0

嗨@Angad Tiwari可能的路徑是「/ storage/sdcard0」,但是它是一樣的,沒有加載該圖像:( – Yossi 2014-10-28 08:20:35

+0

可以告訴我你的代碼來檢索圖像嗎? – 2014-10-28 08:51:27

+0

示例代碼從http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-文字/謝謝:) – Yossi 2014-10-28 09:52:36