我想查询两个不同的内容提供商:
MediaStore.Images.Media.EXTERNAL_CONTENT_URI
和
MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI
首先,我需要查询“MediaStore.Images.Media.EXTERNAL_CONTENT_URI”,以便我可以将光标移动到特定日期之后添加的所有图像。我现在知道怎么做了。问题在于缩略图。我还需要查询“MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI”以获取缩略图图像,以便我可以在列表视图中显示它们。这是我在某种程度上需要结合两个查询的结果,因为我只想要在特定日期之后添加的图像的缩略图。但是“MediaStore.Images.Thumbnails”没有关于何时添加图像的信息。它只有“MediaStore.Images.Media”中原始图像的ID。
所以,总结一下我需要帮助的地方:
我需要一个包含以下列的游标:
MediaStore.Images.Thumbnails.IMAGE_ID,
MediaStore.Images.Thumbnails._ID,
MediaStore.Images.Thumbnails.DATA,
MediaStore.Images.Media.DATA,
MediaStore.Images.Media.DATE_TAKEN
如何做到这一点?
感谢您的帮助!
答案 0 :(得分:3)
您可以从一个提供商中选择数据,然后使用ViewBinder选择每行。
Within MyActivity.onCreate() {
...
cursorAdapter.setViewBinder(myViewBinder),
...
}
在某处你像这样实现你的ViewBinder ......
private final ViewBinder myViewBinder=new ViewBinder() {
@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
if(columnIndex==INDEX_OF_THUMB) {
int id=cursor.get("_id");
// get thumb-image data for id from somewhere
// and display in view
}
};
希望这有帮助。
答案 1 :(得分:1)
AFAIK,您需要手动完成连接并将结果倒入MatrixCursor
(如果您确定需要Cursor
)或其他一些数据结构。