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 ...
随机推荐
- HDU4302 线段树
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4302 , 可以用线段树,也可以STL中的map,multiset,优先队列中的任何一个解决(可我只会线 ...
- Tarjan在图论中的应用(一)——用Tarjan来实现强连通分量缩点
前言 \(Tarjan\)是一个著名的将强连通分量缩点的算法. 大致思路 它的大致思路就是在图上每个联通块中任意选一个点开始进行\(Tarjan\)操作(依据:强连通分量中的点可以两两到达,因此从任意 ...
- JavaScript操作Array对象常用的方法
转换方法 因为JavaScript内部机制(继承),所有的对象都具有toLocalString() .toString().valueOf()方法,Array也不例外so:var colors = ...
- convert命令
可以修改图片的分辨率 convert -resize 600×600 src.jpg dst.jpg src.jpg是你要修改的图片的名字 dst.jpg是新生成的图片名字
- 去除myeclipse中doget和dopost方法中的注释
当我们使用myeclipse新建servlet时发现doget和dopost方法中有一些无用的注释,每次新建一个servlet时都要手动删除特别麻烦. 下面就教大家如何去除这些注释! 以myeclip ...
- 【算法】Fibonacci(斐波那契数列)相关问题
一.列出Fibonacci数列的前N个数 using System; using System.Collections.Generic; using System.Linq; using System ...
- 关于HTML(含HTML5)的块级元素和行级(内联)元素总结
1.首先我们要知道什么是块级元素和行级(内联)元素? 块级(block)元素的特点: ①总是在新行上开始: ②高度,行高以及外边距和内边距都可控制: ③宽度缺省是它的容器的100%,除非设定一个宽度: ...
- zabbix监控系统时间的问题
分类: 监控 2013-03-19 21:40:11 发现zabbix监控系统时间的一个问题!zabbix监控系统时间用的key是system.localtime,返回当前的系统时间,而配置tig ...
- PAM认证机制
PAM:Pluggable Authentication Modules 认证库:文本文件,MySQL,NIS,LDAP等 Sun公司于1995 年开发的一种与认证相关的通用框架机制 PAM 是关注如 ...
- grep与正则表达式使用
grep简介 grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.通常grep有三种版本grep.egrep(等同于grep -E)和fgrep.egrep为扩展的g ...