我创建了一个程序,用户可以在此应用中显示要加载的图片。当用户想要加载图片时,他可以选择他想要使用的文件浏览器类型:
一切正常,但如果我选择“图库”并标记我的图像,它就不起作用。只有当我选择“画廊”时才会发生。
@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或“我的文件”时,一切正常。
答案 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(文件路径)
这将设置内容可以开放。