首先是相册图片的获取:

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(安卓)app开发中获取cpu arm架构信息及执行shell命令方法
  2. Android(13)——RecyclerView列表流行控件,Glide图片流行框架
  3. 关于android 图片加载优化
  4. Android(安卓)5.0后图片报错:libpng warning: iCCP: Not recogniz
  5. Android中进行图片缩放显示
  6. Android(安卓)获取系统时间
  7. Android在onCreate或者在Fragment的onCreateView中获取控件、屏
  8. Android(安卓)Bluetooth opp package 学习笔记
  9. Android(安卓)加载等待控件 ZFProgressHUD

随机推荐

  1. Android(安卓)app集成友盟崩溃日志收集
  2. Android上解析Json格式数据
  3. Android(安卓)MD5加密
  4. Android(安卓)语音识别
  5. Android(安卓)一堆会动的控件
  6. Android(安卓)ListView 滚动加载数据
  7. android使用Intent操作拨打号码发送短信
  8. Android中获取和设置手机的壁纸
  9. Android(安卓)透明状态栏实现方案
  10. android 开发之坑系列_实体序列化问题