获取相册图片及路径

原文地址:http://blog.csdn.net/hugh114/article/details/5765332


手头上正在做Android平台的一个项目,需要用到相册的图片,就顺便记录下,方便自己以后回顾。好了,废话就到此为止了。以下给出的是部分代码,可以根据自己的需要进行修改~

首先是相册图片的获取:

private final String IMAGE_TYPE = "image/*";

private final int IMAGE_CODE = 0; //这里的IMAGE_CODE是自己任意定义的

//使用intent调用系统提供的相册功能,使用startActivityForResult是为了获取用户选择的图片

Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT);

getAlbum.setType(IMAGE_TYPE);

startActivityForResult(getAlbum, IMAGE_CODE);

//重写onActivityResult以获得你需要的信息

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data){

if (resultCode != RESULT_OK) { //此处的RESULT_OK 是系统自定义得一个常量

Log.e(TAG,"ActivityResult resultCode error");

return;

}

Bitmap bm = null;

//外界的程序访问ContentProvider所提供数据可以通过ContentResolver接口

ContentResolver resolver = getContentResolver();

//此处的用于判断接收的Activity是不是你想要的那个

if (requestCode == IMAGE_CODE) {

try {

Uri originalUri = data.getData(); //获得图片的uri

bm = MediaStore.Images.Media.getBitmap(resolver, originalUri); //显得到bitmap图片


这里开始的第二部分,获取图片的路径:

String[] proj = {MediaStore.Images.Media.DATA};

//好像是android多媒体数据库的封装接口,具体的看Android文档

Cursor cursor = managedQuery(originalUri, proj, null, null, null);

//按我个人理解 这个是获得用户选择的图片的索引值

int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

//将光标移至开头 ,这个很重要,不小心很容易引起越界

cursor.moveToFirst();

//最后根据索引值获取图片路径

String path = cursor.getString(column_index);

}catch (IOException e) {

Log.e(TAG,e.toString());

}

}

}

更多相关文章

  1. Android(安卓)资源加载与匹配
  2. 解决eclipse中执行程序提示“Your project contains error(s),ple
  3. 在Android(安卓)Studio 中使用ADB命令模拟手机各种状态(记录中...
  4. android 加载网络图片 SkImageDecoder::Factory returned null
  5. Android学习笔记19:ImageView实现图片适屏与裁剪
  6. Android常用组件(View学习之一)
  7. Android(安卓)Studio 打包成jar文件并混淆代码
  8. 第六章、android的Drawable
  9. adb安装及命令总结

随机推荐

  1. 教你如何使用MySQL8递归的方法
  2. sql获取存储过程返回数据过程解析
  3. MySQL中or、in、union与索引优化详析
  4. win10 mysql导出csv的两种方式
  5. MySQL中索引失效的常见场景与规避方法
  6. mysql存储过程之循环语句(WHILE,REPEAT和LO
  7. mysql事件之修改事件(ALTER EVENT)、禁用事
  8. mysql的计划任务与事件调度实例分析
  9. mysql触发器之触发器的增删改查操作示例
  10. mysql日期处理函数实例解析