一,先来几张效果图
调用相机的代码
public void camera() {
// 激活相机
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
// 判断存储卡是否可以用,可用进行存储
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
tempFile = new File(Environment.getExternalStorageDirectory()+File.separator,"temppic.jpg");
// 从文件中创建uri
Uri uri = Uri.fromFile(tempFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
}
// 开启一个带有返回值的Activity,请求码为RESULT_CAMERA
startActivityForResult(intent, 101);
}
/**
* 获取全部图片地址
* @return
*/
public ArrayList<String> listAlldir(){
Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
Uri uri = intent.getData();
ArrayList<String> list = new ArrayList<String>();
String[] proj ={MediaStore.Images.Media.DATA};
Cursor cursor=null;
try{
cursor = context.getContentResolver().query(uri, proj, null, null, null);//managedQuery(uri, proj, null, null, null);
while(cursor.moveToNext()){
String path =cursor.getString(0);
list.add(new File(path).getAbsolutePath());
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(cursor!=null&&!cursor.isClosed()){
cursor.close();
}
}
return list;
}
/**获取本地图册列表
* @return
*/
public List<FileTraversal> LocalImgFileList(){
List<FileTraversal> data=new ArrayList<FileTraversal>();
String filename="";
List<String> allimglist=listAlldir();
List<String> retulist=new ArrayList<String>();
if (allimglist!=null) {
Set set = new TreeSet();
String []str;
for (int i = 0; i < allimglist.size(); i++) {
retulist.add(getfileinfo(allimglist.get(i)));
}
for (int i = 0; i < retulist.size(); i++) {
set.add(retulist.get(i));
}
str= (String[]) set.toArray(new String[0]);
for (int i = 0; i < str.length; i++) {
filename=str[i];
FileTraversal ftl= new FileTraversal();
ftl.filename=filename;
data.add(ftl);
}
for (int i = 0; i < data.size(); i++) {
for (int j = 0; j < allimglist.size(); j++) {
if (data.get(i).filename.equals(getfileinfo(allimglist.get(j)))) {
data.get(i).filecontent.add(allimglist.get(j));
}
}
}
}
return data;
}