Android获取手机相册图片
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获取手机相册图片相关推荐
- Android获取本地相册图片
Android获取本地相册图片 第一步设置静态权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_S ...
- Android获取系统相册图片选中地址,获取手机中的所有图片地址自定义相册
一.获取手机中的值 1.首先在使用读写sd卡权限 2.获取手机中的所有图片: 注意代码中的getGalleryPhotos(getContentResolver()) 方法获取所有地址 获取所有图片地 ...
- Android获取手机本地图片并显示
一.序言 在安卓开发过程中,有时候我们的应用需要使用手机本地图片,这就需要本地图片访问权限以及相关的获取方法,本文将手机本地图片的获取流程和代码做了一个总结,希望能够对大家有一定帮助: 二.功能分析 ...
- android 小米手机 相册图片路径空指针的问题
测试手机 红米 not3 Uri imageFilePath = data.getData(); String[] proj = {MediaStore.Images.Media.DATA}; Cur ...
- Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题
Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题 1.调用相机,兼容7.0 AndroidManifest配置 <providera ...
- Unity for IOS 加载手机相册图片以及打开相机拍照获取图片
Unity for IOS 加载手机相册图片以及打开相机拍照获取图片 最近想做一个使用unity for IOS获取手机图片的功能,所以就研究了一下 这里我们需要创建两个objective-c文件,最 ...
- oppo手机如何找android,OPPO手机相册中的图片不见了怎么找回?
近期有些小伙伴反馈,相册的图片好端端的,怎么不见了?玩起躲猫猫了?别担心,小编给大家介绍一个相册图片丢失排除的方法,看仔细了哦! OPPO手机相册中的图片不见了怎么办? 手机相册图片丢失,有可能是文件 ...
- 华为荣耀8x云相册不见了_华为手机相册图片凭空消失
华为手机相册图片凭空消失,一起来了解一下华为手机相册图片凭空消失怎么回事吧. 1. 手机中存在 .nomedia文件,导致图片不显示 原因: Android原生设计是当目录存在 .nomedia文件时 ...
- 【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://2402766.blog.51cto.com/2392766/1080837 为了 ...
最新文章
- JS引用类型(6)——基本包装类型1
- 2021年春季学期-信号与系统-第七次作业参考答案-第四小题
- Linux的起源与各发行版的基本知识
- 软件工程概论_课堂测试
- 洛谷P3371-【模板】单源最短路【SPFA】
- 拓端tecdat|r语言多均线股票价格量化策略回测
- python监控桌面捕捉,用Python从屏幕上捕获视频数据
- 浮动时间怎么计算_自由浮动时间 VS 总浮动时间
- wow.js动画插件
- 盘古搜索--实例解析
- 对C标准中空白字符(空格、回车符(\r)、换行符(\n)、水平制表符(\t)、垂直制表符(\v)、换页符(\f))的理解
- 贼法术牧萨nbsp;2800
- 读书到什么程度才能算融会贯通?
- LED Designing
- 【c++ primer】第五版第十四章习题答案
- 多平台Avalonia UI框架的主题化和本地化功能
- FFmpeg源码分析:音频滤镜介绍(上)
- JAVA面向对象(OOP)-类和对象
- 网线标准以及国内外大牌
- RxJava之背压策略
热门文章
- spring注解之@Bean 的用法总结
- 简单工厂模式和工厂方法模式的区别
- 怎么测试唱歌水平的软件,测试一下你的唱功到第几层了?到第五层你已经算是高手了...
- [IE技巧] IE 中打开Office文件的设置
- 2021 年第十三届四川省 ACM-ICPC 大学生程序设计竞赛
- python实现2048小游戏(优化版)
- mysql inner join 效率_mysql的大小表前后顺序对inner join的效率有影响吗?
- LG Innotek开发最高位置识别准确度“数字车钥匙模块”
- Python画饼状图解决字体重叠问题
- CCF201604-4 游戏