展会信息港展会大全

第三方相册数据 android开发教程
来源:互联网   发布日期:2016-01-19 12:32:36   浏览:2305次  

导读:大家都知道怎么取android自带的相册的图片数据。这里简单贴一点代码:在onActivityResult里面添加Uri uri = data getData();Cursor cursor = getContentResolver() query(uri, null,null, null, null); ...

大家都知道怎么取android自带的相册的图片数据。这里简单贴一点代码:

在onActivityResult里面添加

Uri uri = data.getData();

Cursor cursor = getContentResolver().query(uri, null,null, null, null);

cursor.moveToFirst();

srcFile = cursor.getString(1);

cursor.close();

Bitmap bitmap = ImageUtils.decodeFile(srcFile);

即可。

但是呢,往往有一些第三方的相册,使用这种方法取图片的时候报空指针异常,很不让人省心!

那为什么会这样?

因为我们的android相册取图片的时候uri是content类型的(类似content://这样),所以可以用 contentresolver来取图片。但是第三方的相册的uri往往是file类型的(类似file://这样)所以在

Cursor cursor = getContentResolver().query(uri, null,null, null, null);这句话的时候cursor为null了。

解决方法(纯属自己的笨办法):

Uri uri = data.getData();

String srcFile;

if (uri.toString().startsWith("file://")) {

srcFile = uri.toString().replace("file://", "");

} else {

Cursor cursor = getContentResolver().query(uri, null,null, null, null);

cursor.moveToFirst();

srcFile = cursor.getString(1);

cursor.close();

}

Bitmap bitmap = ImageUtils.decodeFile(srcFile);

也就是说,如果uri是file类型的,我就直接取得uri的file路径,如果是content类型的,就用contentresolver来取数据。

赞助本站

人工智能实验室

相关热词: 相册 数据 android开发

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港