1. 在AndroidManifest.XML中添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

2. 使用Intent

在Activity Action里面有一个“ACTION_GET_CONTENT”字符串常量,该常量让用户选择特定类型的数据,并返回该数据的URI.我们利用该常量,

然后设置类型为“image/*”,就可获得android手机内的所有image。

Intent intent1 = new Intent();
intent1.setAction(Intent.ACTION_GET_CONTENT);
intent1.addCategory(Intent.CATEGORY_OPENABLE);
intent1.setType("image/*");

在onCreate中开启onActivityResult

startActivityForResult(intent1,111);

复写onActivityResult读取选择图片的uri

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    super.onActivityResult(requestCode,resultCode,data);
    switch (requestCode){
        case 111:
            if(resultCode ==RESULT_CANCELED) {
                Toast.makeText(getApplication(), "点击取消从相册选择", Toast.LENGTH_LONG).show();
                return;
            }
            try{
                Uri uri = data.getData();
                Log.e("TAG",uri.toString());

String filePath = getRealPathFromURI(uri);
                bitmap1 = getresizePhoto(filePath);
                imageView1.setImageBitmap(bitmap1);
                if(bitmap1!=null){
                    Log.e("aa","bitmap1不为空!!!!!!!!!!");
                }else{
                    Log.e("aa","bitmap1为空!!!!!!!!!!");
                }
            }catch (Exception e){
                e.printStackTrace();
            }
            break;
    }
}

某个uri格式:uri: content://media/external/images/media/614016

某个图片路径 /storage/emulated/0/DCIM/P70713-115542.jpg

从URI获取String类型的文件路径

public String getRealPathFromURI(Uri contentUri){
    Cursor cursor = null;
    try{

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

//由context.getContentResolver()获取contentProvider再获取cursor(游

//标)用游标获取文件路径返回
        cursor = context.getContentResolver().query(contentUri,proj,null,null,null);
        cursor.moveToFirst();
        int column_indenx = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        return cursor.getString(column_indenx);
    } finally {

if (cursor != null) {

cursor.close();
        }
    }
}

3. 根据文件路径调整图片大小防止OOM并且返回bitmap

private  Bitmap getresizePhoto(String ImagePath){
    if (ImagePath!=null){
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(ImagePath,options);
        double ratio = Math.max(options.outWidth*1.0d/1024f,options.outHeight*1.0d/1024);
        options.inSampleSize = (int) Math.ceil(ratio);
        options.inJustDecodeBounds= false;
        Bitmap bitmap=BitmapFactory.decodeFile(ImagePath,options);
        return bitmap;
    }
    return null;
}

Android获取手机相册图片相关推荐

  1. Android获取本地相册图片

    Android获取本地相册图片 第一步设置静态权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_S ...

  2. Android获取系统相册图片选中地址,获取手机中的所有图片地址自定义相册

    一.获取手机中的值 1.首先在使用读写sd卡权限 2.获取手机中的所有图片: 注意代码中的getGalleryPhotos(getContentResolver()) 方法获取所有地址 获取所有图片地 ...

  3. Android获取手机本地图片并显示

    一.序言 在安卓开发过程中,有时候我们的应用需要使用手机本地图片,这就需要本地图片访问权限以及相关的获取方法,本文将手机本地图片的获取流程和代码做了一个总结,希望能够对大家有一定帮助: 二.功能分析 ...

  4. android 小米手机 相册图片路径空指针的问题

    测试手机 红米 not3 Uri imageFilePath = data.getData(); String[] proj = {MediaStore.Images.Media.DATA}; Cur ...

  5. Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题

    Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题 1.调用相机,兼容7.0 AndroidManifest配置 <providera ...

  6. Unity for IOS 加载手机相册图片以及打开相机拍照获取图片

    Unity for IOS 加载手机相册图片以及打开相机拍照获取图片 最近想做一个使用unity for IOS获取手机图片的功能,所以就研究了一下 这里我们需要创建两个objective-c文件,最 ...

  7. oppo手机如何找android,OPPO手机相册中的图片不见了怎么找回?

    近期有些小伙伴反馈,相册的图片好端端的,怎么不见了?玩起躲猫猫了?别担心,小编给大家介绍一个相册图片丢失排除的方法,看仔细了哦! OPPO手机相册中的图片不见了怎么办? 手机相册图片丢失,有可能是文件 ...

  8. 华为荣耀8x云相册不见了_华为手机相册图片凭空消失

    华为手机相册图片凭空消失,一起来了解一下华为手机相册图片凭空消失怎么回事吧. 1. 手机中存在 .nomedia文件,导致图片不显示 原因: Android原生设计是当目录存在 .nomedia文件时 ...

  9. 【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://2402766.blog.51cto.com/2392766/1080837 为了 ...

最新文章

  1. JS引用类型(6)——基本包装类型1
  2. 2021年春季学期-信号与系统-第七次作业参考答案-第四小题
  3. Linux的起源与各发行版的基本知识
  4. 软件工程概论_课堂测试
  5. 洛谷P3371-【模板】单源最短路【SPFA】
  6. 拓端tecdat|r语言多均线股票价格量化策略回测
  7. python监控桌面捕捉,用Python从屏幕上捕获视频数据
  8. 浮动时间怎么计算_自由浮动时间 VS 总浮动时间
  9. wow.js动画插件
  10. 盘古搜索--实例解析
  11. 对C标准中空白字符(空格、回车符(\r)、换行符(\n)、水平制表符(\t)、垂直制表符(\v)、换页符(\f))的理解
  12. 贼法术牧萨nbsp;2800
  13. 读书到什么程度才能算融会贯通?
  14. LED Designing
  15. 【c++ primer】第五版第十四章习题答案
  16. 多平台Avalonia UI框架的主题化和本地化功能
  17. FFmpeg源码分析:音频滤镜介绍(上)
  18. JAVA面向对象(OOP)-类和对象
  19. 网线标准以及国内外大牌
  20. RxJava之背压策略

热门文章

  1. spring注解之@Bean 的用法总结
  2. 简单工厂模式和工厂方法模式的区别
  3. 怎么测试唱歌水平的软件,测试一下你的唱功到第几层了?到第五层你已经算是高手了...
  4. [IE技巧] IE 中打开Office文件的设置
  5. 2021 年第十三届四川省 ACM-ICPC 大学生程序设计竞赛
  6. python实现2048小游戏(优化版)
  7. mysql inner join 效率_mysql的大小表前后顺序对inner join的效率有影响吗?
  8. LG Innotek开发最高位置识别准确度“数字车钥匙模块”
  9. Python画饼状图解决字体重叠问题
  10. CCF201604-4 游戏