- MediaStore.Images.Media.BUCKET_DISPLAY_NAME,// 相册名称
Media内数据库列名整理 - 调用相机将照片存储在路劲中时,路径path=“ /sdcard/DCIM/camera/ ” (注意前后的 “/”不能丢,android根目录以 “ / ”开头)
- 有时候 file.exit()比查询数据库操作更耗时 【一次性查询多个数据集比多次查询合适数据集耗时更长】--(主要体现在刷新操作,一次刷新,每次都要查询多个数据集)
- 如何在Android媒体库中进行分组查询?
****在Android中使用ContentResolver查询媒体库时是没有Group by参数的,但是可以追加在where参数中。****
例如查询按文件夹查询图片,并且查询每个文件夹下面的图片数量
final String selection = "1=1) group by ([bucket_id]";
final String[] projection = new String[]{
"count([_id])",
"bucket_display_name"};
Cursor c = getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
projection,
selection, null, null);
while (c.moveToNext() ) {
Log.e("haha", c.getString(2) + ":"+c.getInt(0));
}
c.close();
主要是注意系统会为where语句添加一对小括号,即where ( … ) , 跟上面的”)(“拼接成两对小括号 ,最后拼接成的Sql语句为:
SELECT count([_id]), bucket_id, bucket_display_name FROM images WHERE (1=1) group by ([bucket_id])
实习开发:
- 【优化 】修改了获取相册信息的方式--(没有理解leader意思,要二次查询)
2.【问题】在相册选择开发中,首页显示照片是根据albumName,通过数据库操作显示照片。但在调用相机时,将拍摄照片存储在"/sdcard/DCIM/camera/"下时,虽然已经存储在目录中了,但为什么通过数据库操作不能更新到?
---要通知数据库进行入库操作 - 【优化】数据库查询,能直接查询到所得信息就直接查询,尽量减少对信息进行二次加工
【优化】activity改为fragment
【优化】delete删除会有返回值,依靠返回值进行判断是否删除成功
网友评论