如何获取Android联系人缩略图

前端之家收集整理的这篇文章主要介绍了如何获取Android联系人缩略图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个listview适配器,我在newView方法中尝试以下操作:
@Override
    public View newView(Context context,Cursor cursor,ViewGroup parent) {

        final LayoutInflater inflater = LayoutInflater.from(context);
        View v = inflater.inflate(layout,parent,false);

        long contactId = Long.valueOf(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID))); 
        String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
        boolean hasPhone = Boolean.parseBoolean(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))); 
        String thumbnailUri = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.PHOTO_THUMBNAIL_URI)); 

        TextView name_text = (TextView) v.findViewById(R.id.name_entry);
        if (name_text != null) {
            name_text.setText(contactName);
        }

        name_text.setTag(new Contact(contactId,hasPhone));

        ImageView thumbnail = (ImageView) v.findViewById(R.id.thumbnail);
        if (thumbnailUri != null) {
            thumbnail.setImageURI(Uri.parse(thumbnailUri));
        } else {
            thumbnail.setImageResource(R.drawable.ic_launcher);
        }

        return v;
    }

但是当我尝试解析存储在thumbnailUri中的Uri时,我收到以下错误

08-09 01:58:38.619: I/System.out(1471): resolveUri Failed on bad bitmap uri: content://com.android.contacts/contacts/1/photo

我这样做错了吗?任何帮助将不胜感激!

@R_404_323@

private Uri getPhotoUriFromID(String id) {
    try {
        Cursor cur = getContentResolver()
                .query(ContactsContract.Data.CONTENT_URI,null,ContactsContract.Data.CONTACT_ID
                                + "="
                                + id
                                + " AND "
                                + ContactsContract.Data.MIMETYPE
                                + "='"
                                + ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE
                                + "'",null);
        if (cur != null) {
            if (!cur.moveToFirst()) {
                return null; // no photo
            }
        } else {
            return null; // error in cursor process
        }
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
    Uri person = ContentUris.withAppendedId(
            ContactsContract.Contacts.CONTENT_URI,Long.parseLong(id));
    return Uri.withAppendedPath(person,ContactsContract.Contacts.Photo.CONTENT_DIRECTORY);
}

这是您需要传递联系人ID的功能,您将获得可以在图像视图中轻松设置的图像的URI.

使用此功能的响应uri,如imageView.setImageURI(uri)

希望它能为您的代码工作.

原文链接:https://www.f2er.com/android/312284.html

猜你在找的Android相关文章