2015-01-03 143 views
3

选择一个图像在片段我打电话画廊意图是这样的:的Android从画廊

  // Create the Intent for Image Gallery. 
     Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
     startActivityForResult(i, MainActivity.LOAD_IMAGE_RESULTS); 

而且在主要活动中,我处理的结果与下面的代码:

public static int LOAD_IMAGE_RESULTS = 1; 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    Log.w("reqestCode:",""+requestCode); 
    if(requestCode == LOAD_IMAGE_RESULTS && data != null && data.getData() != null) { 
     Uri _uri = data.getData(); 

     //User had pick an image. 
     Cursor cursor = getContentResolver().query(_uri, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null); 
     cursor.moveToFirst(); 

     //Link to the image 
     final String imageFilePath = cursor.getString(0); 
     Log.w("ImageFile",imageFilePath); 
     cursor.close(); 
    } 
} 

但在onActivityResult requestCode是返回196609的值。所以我的代码不工作,我可以如何解决它?

回答

0

你说你打电话给Fragment。你有没有试过在这两个地方听onActivityResultActivity以及Fragment?这值得一试。 :)

+0

仍然same.Request代码返回196609 – Okan

+0

而且你确定LOAD_IMAGE_RESULTS是!=比196609,怀特? :D – AndreiBogdan

+0

我给了我的问题LOAD_IMAGE_RESULTS。你可以检查第二代码块 – Okan

0

外观问题与您创建的Intent有关。试试这样的:

   pictureActionIntent = new Intent(
         Intent.ACTION_GET_CONTENT, null); 
       pictureActionIntent.setType("image/*"); 
       pictureActionIntent.putExtra("return-data", true); 
       startActivityForResult(pictureActionIntent, 
         GALLERY_PICTURE); 

欲了解更多信息,请检查this答案。

+0

我尝试过,但仍然有同样的问题。请求代码返回196609 – Okan

+0

您是否遵循此链接? http://stackoverflow.com/a/11732944/631803 – VicJordan

+0

是的,但我的代码看起来正确 – Okan

0

试试这个代码,它将作品 //开始onactivity结果活动

Intent intent = new Intent(); 
intent.setType("image/*"); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
startActivityForResult(
       Intent.createChooser(intent, "Select Picture"), 
       GALLERY_INTENT_CALLED); 

//获取位图

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK) { 
     if (requestCode == GALLERY_INTENT_CALLED) { 
      if (null == data) 
       return; 
      String selectedImagePath; 
      Uri selectedImageUri = data.getData(); 
      // MEDIA GALLERY 
      Bitmap bitmap = BitmapFactory.decodeFile(ImageFilePath.getPath(
        getApplicationContext(), selectedImageUri)); 
      ivProfileImage.setImageBitmap(bitmap); 

     } 
    } 
}