2012-02-03 128 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(); 
     } 
    } 

好运!