8

我有一个 ImageView,我正在使用 Uri 显示联系人图片,该图片总是类似于以下内容:

内容://com.android.contacts/contacts/34/photo

我如何能够检测到这张照片是否存在,就好像它不存在一样,然后我想使用占位符(存储在我的可绘制文件夹中)。目前它只显示一个空白图像。

4

2 回答 2

9

获取联系人照片 uri 的功能:

public Uri getPhotoUri(Integer contactid) {
    Cursor photoCur = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '1'", null, ContactsContract.Contacts.DISPLAY_NAME+" COLLATE LOCALIZED ASC");
    photoCur.moveToPosition(contactid);
    Uri person = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, photoCur.getLong(photoCur.getColumnIndex(ContactsContract.Contacts._ID)));
    Uri photo = Uri.withAppendedPath(person, ContactsContract.Contacts.Photo.CONTENT_DIRECTORY);
    return photo;
}

并调用该函数(contactimage 是一个 ImageView):

Uri contactphoto = getPhotoUri(2);
contactimage.setImageURI(contactphoto);
if (contactimage.getDrawable() == null) {
    contactimage.setImageResource(R.drawable.contactplaceholder);
}
于 2010-08-18T17:56:28.907 回答
6

可能通过使用ContactsContract.Data.PHOTO_ID. 如果它没有价值,那么就没有照片。

于 2010-08-18T03:34:27.240 回答