Метод ImageView.setImageURI не показывает изображение на Android - PullRequest
0 голосов
/ 13 февраля 2012

Я перечисляю контакты с фотографией, но я не смог показать фотографии контактов.Я получаю фото URI следующим образом:

            ContentResolver cr = getContentResolver();
//          Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,null, null,null );
            Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, ContactsContract.Contacts.DISPLAY_NAME + " ASC");
            if (cur.getCount() > 0) {
                while (cur.moveToNext()) {
                    id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
                    name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                    photo_id = cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.PHOTO_ID));
                    Log.e("name", name);
                    Log.e("Photo_id", ""+photo_id);
                    photo = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, photo_id);
                    Log.e("URI", ""+photo);
                    image.setImageURI(photo); // Does not shown image.
                    ...
                  }
                 }

Образец URI (напечатан в журнале):

content: //com.android.contacts/contacts/52

я не знаю причину, по которой ури не показываются изображения.пожалуйста, помогите мне.

1 Ответ

1 голос
/ 15 февраля 2012

Я решил свою проблему, используя растровое изображение.imageView.setImageURI не используется для меня.так что используйте следующий код вместо setImageURI.

    private Bitmap loadContactPhoto(ContentResolver cr, int id) {
        Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id);
        InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);
        if (input == null) {
            return null;
        }
        return BitmapFactory.decodeStream(input);

    } 

Здесь id - идентификатор контакта, а не идентификатор фотографии контакта.

...