获取手机中的图片的绝对路径并且区分出每个文件夹下的路径:

存放图片绝对路径的文件夹的名字和存放绝对路径的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之操作相册的更多相关文章

  1. [Android Pro] 完美Android Cursor使用例子(Android数据库操作)

    reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...

  2. Android 常用操作

    0.android studios使用介绍 使用介绍 android studio 常用小技巧 网址 1.怎么样添加第三方库 方法一: 第一步:将第三方库以module的形式导入 第二步:选中要导入第 ...

  3. Android – 学习操作NFC – 2

    在<Android – 学习操作NFC – 1>说明了Android在处理NFC tag的机制.tag dispatch system的运作流程,以及三种ACTION_NDEF_DISCO ...

  4. Android调用系统相册和拍照的Demo

    最近我在群里看到有好几个人在交流说现在网上的一些Android调用系统相册和拍照的demo都有bug,有问题,没有一个完整的.确实是,我记得一个月前,我一同学也遇到了这样的问题,在低版本的系统中没问题 ...

  5. Android相机、相册获取图片显示并保存到SD卡

    Android相机.相册获取图片显示并保存到SD卡 [复制链接]   电梯直达 楼主    发表于 2013-3-13 19:51:43 | 只看该作者 |只看大图  本帖最后由 happy小妖同学 ...

  6. android——拍照,相册图片剪切其实就这么简单

    接触android这么久了.还没有真正的浩浩看看android拍照,相册图片剪切到底是怎么回事,每次都是从别人的代码一扣,就过来了.其实,谷歌提供的API已经很强大.只需要用的好,就那么几句就可以搞定 ...

  7. android 文件操作类简易总结

    android 文件操作类(参考链接) http://www.cnblogs.com/menlsh/archive/2013/04/02/2997084.html package com.androi ...

  8. 为什么说android UI操作不是线程安全的

    转载于:http://blog.csdn.net/lvxiangan/article/details/17218409#t2 UI线程及Android的单线程模型原则 使用Worker线程 Commu ...

  9. Android权限操作之uses-permission详解

    本文实例讲述了Android权限操作之uses-permission.分享给大家供大家参考,具体如下: 我们在安装Android软件的时候,系统会提示该软件所需要的权限,相对于其他系统,android ...

随机推荐

  1. Struts2 In Action笔记_页面到动作的数据流入和流出

    因为回答百度知道的一个问题,仔细查看了<Struts2 In Action>,深入细致的看了 “数据转移OGNL 和 构建视图-标签”,很多东西才恍然大悟. 一直觉得国外写的书很浮,不具有 ...

  2. Oracle小知识_长期总结

    更新时间:2018年7月16日 11:22:28 一. 系统 1. 打开防火墙后 Oracle 无法链接 新建1521端口规则. 二.知识 A. 序列 1. nextval ------------- ...

  3. c++程序设计第三版例题1.2 求两数的和

    #include <iostream>using namespace std; int main(){ //求两数之和 int a,b,sum; a=11; b=22; sum=a+b; ...

  4. V8引擎——详解

    前言 JavaScript绝对是最火的编程语言之一,一直具有很大的用户群,随着在服务端的使用(NodeJs),更是爆发了极强的生命力.编程语言分为编译型语言和解释型语言两类,编译型语言在执行之前要先进 ...

  5. vue项目各页面间的传值

    githut地址:https://github.com/liguoyong/vueobj1 一.父子之间主键传值:(主要是在父主件里的子主件传递参数,然后再子主件里用props接收) 例如Father ...

  6. 你所不知道的js的小知识点(1)

    1.js调试工具 debugger <div class="container"> <h3>debugger语句会产生一个断点,用于调试程序,并没有实际功能 ...

  7. jrtplib移植

    jrtplib版本:3.11.1 jthread版本:1.3.3 libsrtp版本:1.6.0 jrtplib库有两种编译方式: 1. 使能jthread编译,此方式可使jrtplib自动在后台轮询 ...

  8. sigqueue与kill详解及实例

    /*********************************************************************************************** 相关函 ...

  9. Atlas 配置高可用

    keepalived安装 #下载keepalived ./configure --prefix=/usr/local Make && make install Atlas主安装keep ...

  10. java抓取12306火车余票信息

    最近在弄一个微信的公众帐号,涉及到火车票查询,之前用的网上找到的一个接口,但只能查到火车时刻表,12306又没有提供专门的查票的接口.今天突然想起自己直接去12306上查询,抓取查询返回的数据包,这样 ...