Android之操作相册
获取手机中的图片的绝对路径并且区分出每个文件夹下的路径:
存放图片绝对路径的文件夹的名字和存放绝对路径的List 实体类如下:
import java.util.ArrayList;
import java.util.List; public class ImagePath {
private String pakagePath;
private List<String> listPth = new ArrayList<String>(); public String getPakagePath() {
return pakagePath;
}
public void setPakagePath(String pakagePath) {
this.pakagePath = pakagePath;
}
public List<String> getListPth() {
return listPth;
}
public void setListPth(List<String> listPth) {
this.listPth = listPth;
} }
将手机中的图片绝对路径按包名区分开:
private ContentResolver contentResolver;
private Button button;
private Uri uri;
private List<ImagePath> imagePaths;
private List<ImagePath> getImgPath() {
imagePaths = new ArrayList<ImagePath>();
contentResolver = this.getContentResolver();
uri = Media.EXTERNAL_CONTENT_URI;
Cursor cursor = contentResolver.query(uri, null, null, null, null);
Set<String> set = new TreeSet<String>();
List<String> lsPsth = new ArrayList<String>();
while (cursor.moveToNext()) {
//获取绝对路径
String path = cursor.getString(cursor.getColumnIndex(Media.DATA));
//将绝对路径添加到list中
lsPsth.add(path);
//获取包名
String pakageName = cursor.getString(cursor.getColumnIndex(Media.BUCKET_DISPLAY_NAME));
//将包名添加到set中
set.add(pakageName);
}
//set转换成数组
String[] str =set.toArray(new String[set.size()]);
//循环装有包名的数组
for (int i = 0; i < str.length; i++) {
//创建一个ImagePath对象,用于存储某个包下的所有绝对路径(包含包名)
ImagePath imagePath = new ImagePath();
//创建一个ImagePath对象,用于存储某个包下的所有绝对路径(不包含包名)
List<String> listpath = new ArrayList<String>();
//将str数组中的第一个包名存入到imagePath对象中
imagePath.setPakagePath(str[i]);
//循环lsPsth中的所有绝对路径
for (int k = 0; k < lsPsth.size(); k++) {
//判断lsPathget(k)当前这条绝对路径是否是str[i]包名下的绝对路径
if(getPakageNameByPath(lsPsth.get(k)).equals(str[i])){
//如果是存入listpath中
listpath.add(lsPsth.get(k));
}
}
//将区分出来的对局路径存入到对用的包名的imagePath对象中
imagePath.setListPth(listpath);
//将该对象存入imagePaths集合中
imagePaths.add(imagePath);
}
return imagePaths;
}
/**
* 根据据对路径获取该路径的包名
* @param path
* @return
*/
public String getPakageNameByPath(String path){
String pkgName = null;
if(path.length()>0){
String[] str = path.split("/");
pkgName = str[str.length-2];
}
return pkgName;
}
未完....
Android之操作相册的更多相关文章
- [Android Pro] 完美Android Cursor使用例子(Android数据库操作)
reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...
- Android 常用操作
0.android studios使用介绍 使用介绍 android studio 常用小技巧 网址 1.怎么样添加第三方库 方法一: 第一步:将第三方库以module的形式导入 第二步:选中要导入第 ...
- Android – 学习操作NFC – 2
在<Android – 学习操作NFC – 1>说明了Android在处理NFC tag的机制.tag dispatch system的运作流程,以及三种ACTION_NDEF_DISCO ...
- Android调用系统相册和拍照的Demo
最近我在群里看到有好几个人在交流说现在网上的一些Android调用系统相册和拍照的demo都有bug,有问题,没有一个完整的.确实是,我记得一个月前,我一同学也遇到了这样的问题,在低版本的系统中没问题 ...
- Android相机、相册获取图片显示并保存到SD卡
Android相机.相册获取图片显示并保存到SD卡 [复制链接] 电梯直达 楼主 发表于 2013-3-13 19:51:43 | 只看该作者 |只看大图 本帖最后由 happy小妖同学 ...
- android——拍照,相册图片剪切其实就这么简单
接触android这么久了.还没有真正的浩浩看看android拍照,相册图片剪切到底是怎么回事,每次都是从别人的代码一扣,就过来了.其实,谷歌提供的API已经很强大.只需要用的好,就那么几句就可以搞定 ...
- android 文件操作类简易总结
android 文件操作类(参考链接) http://www.cnblogs.com/menlsh/archive/2013/04/02/2997084.html package com.androi ...
- 为什么说android UI操作不是线程安全的
转载于:http://blog.csdn.net/lvxiangan/article/details/17218409#t2 UI线程及Android的单线程模型原则 使用Worker线程 Commu ...
- Android权限操作之uses-permission详解
本文实例讲述了Android权限操作之uses-permission.分享给大家供大家参考,具体如下: 我们在安装Android软件的时候,系统会提示该软件所需要的权限,相对于其他系统,android ...
随机推荐
- HDU3874 线段树 + 离线处理
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3874 , 线段树(或树状数组) + 离线处理 下午做了第一道离线处理的题目(HDU4417),多少有点 ...
- hdu-1179 Ollivanders: Makers of Fine Wands since 382 BC.---二分图匹配模板
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1179 题目大意: 有n个人要去买魔杖,有m根魔杖(和哈利波特去买魔杖的时候一样,是由魔杖选人).接下 ...
- 全面了解linux情况常用命令
查看linux服务器CPU详细情况1. 显示CPU个数命令 # cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc ...
- 3204: 数组做函数参数--排序函数2--C语言
3204: 数组做函数参数--排序函数2--C语言 时间限制: 1 Sec 内存限制: 128 MB提交: 211 解决: 143[提交][状态][讨论版][命题人:smallgyy] 题目描述 ...
- 复习C++_指针、动态分配内存
注意:++i指的是先计算i+1,然后将其赋给i cout<<str[7]<<endl; //输出a 注:交换失败 注意:delete释放之后,变为迷途指针. 注:n--> ...
- python_32_文件操作1
#目录里先创建一个yesterday文件 '''对文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 ''' print(open('yesterday',enc ...
- nginx installl
参考http://jingyan.baidu.com/album/4b07be3cbbb54848b380f322.html?picindex=5 安装nginx需要的依赖包 wget 下载 编译安装 ...
- idea 创建springboot工程
公司最近用springboot做微服务开发 1,使用idea创建一个spring initializr 工程 2,点击next 3,配置好后继续next 4,可以勾选上web,继续next 5,fin ...
- java中 二进制 八进制 十六进制 十进制 相互转换 最简方法
package com.swift; import java.util.Scanner; public class Hex2Decimal { public static void main(Stri ...
- jQuery入门第一天-(一个菜鸟的不正经日常)
jQuery的初步认识 菜鸟Q1:什么是jQuery? jQuery就是一个JavaScript函数库,没什么 特别的. 菜鸟Q2:jQuery能做什么?jQuery是做什么的? jQuery本身就是 ...