определить, есть ли у контакта фотография - PullRequest
8 голосов
/ 15 июля 2010

У меня есть ImageView, в котором я отображаю изображение контактов с помощью Uri, которое всегда выглядит примерно так:

content: //com.android.contacts/contacts/34/фотография

Как я могу определить, существует ли эта фотография, как если бы ее не было, тогда я хочу использовать вместо нее заполнитель (хранящийся в моей папке для рисования).На данный момент это просто показывает пустое изображение.

Ответы [ 2 ]

9 голосов
/ 18 августа 2010

функция для получения фото контактов:

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;
}

и вызов этой функции (contactCmage - это ImageView):

Uri contactphoto = getPhotoUri(2);
contactimage.setImageURI(contactphoto);
if (contactimage.getDrawable() == null) {
    contactimage.setImageResource(R.drawable.contactplaceholder);
}
6 голосов
/ 18 августа 2010

Возможно с помощью ContactsContract.Data.PHOTO_ID. Если у него нет значения, то нет фотографии.

...