从系统库中获取图像。为什么不工作?

时间:2012-12-16 18:53:44

标签: android

我创建了一个程序,用户可以在此应用中显示要加载的图片。当用户想要加载图片时,他可以选择他想要使用的文件浏览器类型:

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) {
                   }
            } [...]

从Gallery中选择图像后,loadedimage为null。 当我使用Dropbox或“我的文件”时,一切正常。

2 个答案:

答案 0 :(得分:0)

我猜你应该使用

Uri mUri = data.getData();

如果是Gallery,则返回的文件格式为content://而不是file://

所以你应该使用uri而不是在uri上执行getPath

编辑: 使用uri解码如下

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

loadedimage = BitmapFactory.decodeStream(is)

答案 1 :(得分:0)

你应该试试这个。
        文件filePath =新文件(路径);
然后使用
        Uri.fromFile(文件路径)
这将设置内容可以开放。