2012-11-22 27 views
3

我很困惑,爲什麼它發生,因爲我的小知識說它不應該發生。我已存儲的圖像夫婦在Android的資產目錄中的APK其實像一些目錄結構:在android中設置源與ImageView與uri生成錯誤

Assets --> aphotos --> launch50 ---> launch501.jpg 

現在比如我想語法設置爲一個ImageView的插件親的圖像像以下內容: -

Uri uri = Uri.parse("file:///android_asset/"+context.getString(R.string.photoroot)+"/"+fldr+"/"+introphoto); 
    System.out.println("Image URI: "+uri.toString());  
    imageView.setImageURI(uri); 

其中「fldr」和「introphoto」來自數據庫。此時它生成「的logcat」以下錯誤: -

11-22 19:23:46.689: W/ImageView(12990): Unable to open content: file:///android_asset/aphotos/launch50/launch501.jpg 11-22 19:23:46.689: W/ImageView(12990): java.io.FileNotFoundException: /android_asset/aphotos/launch50/launch501.jpg (No such file or directory) 11-22 19:23:46.689: W/ImageView(12990): at org.apache.harmony.luni.platform.OSFileSystem.open(Native Method) 

有人可以告訴大家,爲什麼它的發生,因爲圖像是存在的? 在此先感謝!

回答

0

this question爲資產文件獲取URI顯然效果不佳。

我認爲你需要一個流做到這一點:

String path = context.getString(R.string.photoroot)+"/"+fldr+"/"+introphoto; 
    InputStream is = getAssets().open(path); 
    Bitmap bitmap = BitmapFactory.decodeStream(is); 
    imageView.setImageBitmap(bitmap); 
    is.close(); 
+0

問題是爲什麼沒有打開實際不需要的流就無法完成。圖像在那裏,setImageURI方法在那裏,那麼爲什麼不工作? – Fundi

+0

看來資產的URI不起作用...請參閱我的編輯 – fiddler

+0

這適用於我: - [link](http://stackoverflow.com/a/8197435/1326579)感謝您的友好回覆。 – Fundi

1

它應該是文件://而不是file:///。你在文件後添加一個額外的'/'。

Uri uri =Uri.parse("file://android_asset/"+context.getString(R.string.photoroot)+"/"+fldr+"/"+introphoto); 
    System.out.println("Image URI: "+uri.toString());  
    imageView.setImageURI(uri); 
+0

它不適合我! – Fundi