我正在开发电话簿应用程序。我正在尝试检索联系人图片。起初,我检索了所有的联系人,然后拿走了每个contact_id并在照片桌上做了一个查询来获取照片。但是,查询图片的所有联系人需要花费很长时间。在我的模拟器中,有超过1000个联系人,因此,在照片桌上的1000多次点击正在被解雇。那么,有没有办法连接这两个表并在单个查询中获取数据?在Android中加入联系人和照片表
下面是我的代码来做到这一点。但我知道它错了。刚刚给了它一个镜头。请有人纠正它。
String[] projection = new String[]{Contacts._ID, Contacts.DISPLAY_NAME};
String joinCondition = "ContactsContract.Contacts._ID=ContactsContract.CommonDataKinds.Photo.CONTACT_ID";
ContentResolver cr = context.getContentResolver();
Uri contactUri = ContactsContract.Contacts.CONTENT_URI;
Uri fillUri = Uri.withAppendedPath(contactUri, Contacts.Photo.CONTENT_DIRECTORY);
Cursor cur = cr.query(contactUri, projection,
joinCondition, null, Contacts.DISPLAY_NAME);
THX! 拉胡尔。
如果我没有错,我将不得不使用结果中的照片uri对照片表进行查询。我又开始了。 – rahul 2012-02-19 20:06:53
一旦你有一个缩略图URI,你只需要设置你的图像视图来显示缩略图。这不是你想要的吗? – Asahi 2012-02-19 21:08:27
我同意我会得到缩略图uri。但是,我将不得不去查询或使用openContactPhotoInputStream()来获取实际的blob。这是有效的,但由于有超过1000个查询需要触发,所以很长一段时间。有没有办法一次检索所有照片? – rahul 2012-02-20 17:12:40