android通过Cursor按时间戳分页遍历相册每页10张 但同一分钟内时间戳一样无法向下分页,举例遍历2023-05-01 12:03:05以后的照片 其中2023-05-02:12:00:00的照片有100张 转换的时间戳一样不会向下遍历了
时间: 2024-03-15 13:44:48 浏览: 121
针对您的需求,可以按照如下步骤实现:
1. 获取指定日期之后的所有照片的时间戳,并按照时间戳升序排列,代码如下:
```java
String[] projection = {MediaStore.Images.Media.DATE_TAKEN, MediaStore.Images.Media.DATA};
String selection = MediaStore.Images.Media.DATE_TAKEN + ">?";
String[] selectionArgs = {String.valueOf(startDate.getTime())};
String sortOrder = MediaStore.Images.Media.DATE_TAKEN + " ASC";
Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, selection, selectionArgs, sortOrder);
```
2. 对于同一分钟内的照片,使用照片的路径来进行区分,遍历时跳过已经遍历过的照片,代码如下:
```java
int pageSize = 10;
int count = 0;
String lastPath = null;
while (cursor.moveToNext()) {
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
long dateTaken = cursor.getLong(cursor.getColumnIndex(MediaStore.Images.Media.DATE_TAKEN));
if (lastPath != null && path.equals(lastPath)) {
continue;
}
lastPath = path;
if (dateTaken <= startDate.getTime()) {
continue;
}
// 处理每张照片
count++;
if (count >= pageSize) {
break;
}
}
```
这样就可以实现按照时间戳分页遍历相册,每页最多包含10张照片,同一分钟内的照片不会重复遍历。
阅读全文