2012-12-16 27 views
0

我做了一個程序,用戶在這個應用程序中顯示他想要加載的圖片。當用戶想要加載圖片時,他可以選擇他想要使用什麼樣的文件瀏覽器:從系統庫中獲取圖像。爲什麼不工作?

enter image description here

一切正常,但如果我選擇「畫廊」和標記我的形象,這是行不通的。只有當我選擇「畫廊」時纔會發生。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 

    if(resultCode == RESULT_OK){ 
       String path = data.getData().getPath(); 
       try { 
     loadedimage = BitmapFactory.decodeFile(sciezka_z_obrazem); 
      } 
        catch (Exception e) { 
        } 
      } [...] 

從畫廊挑選圖片後,loadedimage爲空。 當我使用Dropbox或「我的文件」時,一切正常。

回答

0

我猜你應該使用

Uri mUri = data.getData(); 

在庫文件的情況下,返回的形式內容://,而不是文件://

所以,你應該使用URI而不是做上的getPath URI

編輯: 使用URI解碼像下面

InputStream is = getContentResolver().openInputStream(uri); 

loadedimage = BitmapFactory.decodeStream(is) 
+0

但如果我使用decodeFile來加載圖像,我必須畢竟使用String。那麼,當我使用Uri而不是String時,有什麼區別? – Piotrek

+0

檢查編輯。 – nandeesh

0

你應該試試這個。
File filePath = new File(path);
然後使用
Uri.fromFile(filePath)
這將設置內容,可能是openend。

相關問題