2012-02-03 123 views
1

我的應用程序有選項卡,其中一個包含調用系統庫的按鈕。我可以訪問圖庫和文件夾,但是當我想通過點擊圖片來顯示圖片時,圖庫會消失並將我返回到我的應用程序。圖片庫中未顯示

這是我的代碼:

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); 
    photoPickerIntent.setType("image/*"); 
    startActivityForResult(photoPickerIntent, 1); 

我可以知道如何去顯示圖像?非常感謝!

這是當我使用按鈕啓動圖庫並且圖像在那裏但我無法啓動並在手機上查看圖像時所得到的結果。

gallery enter image description here

+0

請給出更多關於正在發生的事情的描述。不顯示圖像,SD卡上是否有任何圖像?你是否通過它來確保沒有奇怪的事情造成這種情況? – JoxTraex 2012-02-03 08:41:38

+0

我在畫廊和相冊中有圖像。當我點擊圖片來顯示它時,它會將我返回到我的應用程序。 – Winona 2012-02-03 08:44:57

回答

1

你有沒有實現onActvityResult方法,對activityResult你需要獲取來自意圖數據,以及需要從該數據顯示圖像,數據包含的ImagePath。

+0

對不起,但我該如何去做呢?我早些時候嘗試過onActivityResult,但它仍然不起作用。因爲我的標籤有2個按鈕。那麼我怎麼去實現onActivityResult? – Winona 2012-02-03 08:54:23

+0

你應該在盲目使用onActivityResult(xx)之類的東西之前閱讀文檔。 – JoxTraex 2012-02-03 09:00:15

+0

即使您從onActivityResult方法開始活動,除非您未實現onActivityResult實現onActivityResult,並且如果您面臨任何問題,然後使用代碼描述錯誤,那麼您將不會從任何活​​動獲得任何結果。 – jeet 2012-02-03 09:09:43

0

閱讀本文檔瞭解如何在onActivityResult(XX)

http://developer.android.com/reference/android/app/Activity.html

+0

但我不認爲我的問題在於onActivityResult。我可以去畫廊並查看文件夾/相冊,但是當我想要啓動圖像時,畫廊會停下來並將我退回到我的應用程序。我在測試原始帖子時添加了我得到的圖片 – Winona 2012-02-03 09:09:58

+0

你說你沒有實現它,你必須**實現它。 – JoxTraex 2012-02-03 09:11:21

+0

但是沒有實現onActivityResult,我能夠啓動系統庫。那麼發生了什麼? – Winona 2012-02-03 09:14:41

0

您的問題工具是意圖需要onActivityResult方法。這有點晚了,但如果你需要的答案,你可以做到這一點

final static int REQUEST_IMAGE_CAPTURED = 1; 
private Uri uriImage; 

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.main); 

     Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 

     startActivityForResult(intent, 1); 
} 

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (resultCode == RESULT_OK) { 
      if (requestCode == REQUEST_IMAGE_CAPTURED) { 
       uriImage = data.getData(); 
       Toast.makeText(MyClass.this, uriImage.getPath(), Toast.LENGTH_LONG).show(); 

       // Your code 
      } 
     } else if (resultCode == RESULT_CANCELED) { 
      uriImage = null; 
      finish(); 
     } 
    } 

好運!