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 ...
随机推荐
- IIS7.5配置自动添加www 及 限制通过IP访问web
IIS7.5配置自动添加www 方法 新建一个站点2(主机名为不带www的站点),将其重定向至带www的URL即可. 注意以下几点 站点2不可与站点1的路径一致,否则会导致站点1也会添加同样的重定向, ...
- leetcode--5 Longest Palindromic Substring
1. 题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximu ...
- linux 命令——14 head (转)
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾. 1.命令格式: hea ...
- JAVA设计模式初探之桥接模式
生活中的一个例子: 拿汽车在路上行驶的来说.既有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶.这你会发现,对于交通工具(汽车)有不同的类型,它们所行驶的环境(路)也 ...
- 3205: 数组做函数参数--数组元素求和1--C语言
3205: 数组做函数参数--数组元素求和1--C语言 时间限制: 1 Sec 内存限制: 128 MB提交: 178 解决: 139[提交][状态][讨论版][命题人:smallgyy] 题目描 ...
- SSH框架快速搭建(Maven)
1.新建Maven项目ssh 2.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=& ...
- Python 之继承
概要 如果要修改现有类的行为,我们不必再从头建一个新的类,可以直接利用继承这一功能.下面将以实例相结合介绍继承的用法. 新建一个基类 代码如下: class Marvel(object): num ...
- 重学css3(概览)
css3新特性概览: 1.强大的选择器 2.半透明度效果的实现 3.多栏布局 4.多背景图 5.文字阴影 6.开放字体类型 7.圆角 8.边框图片 9.盒子阴影 10.媒体查询 浏览器内核又可以分成两 ...
- 操作DOM -------JavaScrip
本文摘要:http://www.liaoxuefeng.com/ 经常用到. 由于HTML文档被浏览器解析后就是一棵DOM树,要改变HTML的结构,就需要通过JavaScript来操作DOM. 始终记 ...
- PL/SQL的安装
一.下载PLSQLDeveloper 网址:https://www.allroundautomations.com/bodyplsqldevreg.html 还需要一个激活码 二.PL/SQL的安装 ...