Androidの通过查询电话号码或ID获取联系人头像
1.通过联系人手机号码查询获取头像
// 取得Intent中的頭像
ivShowImage = (ImageView) findViewById(R.id.call_log_detail_contact_img);
//通话电话号码获取头像uri
Uri uriNumber2Contacts = Uri
.parse("content://com.android.contacts/"
+ "data/phones/filter/" + strPhoneNumber);
Cursor cursorCantacts = SApplication.nowSApplication
.getContentResolver().query(uriNumber2Contacts, null, null,
null, null);
if (cursorCantacts.getCount() > 0) { //若游标不为0则说明有头像,游标指向第一条记录
cursorCantacts.moveToFirst();
Long contactID = cursorCantacts.getLong(cursorCantacts
.getColumnIndex("contact_id"));
Uri uri = ContentUris.withAppendedId(
ContactsContract.Contacts.CONTENT_URI, contactID);
InputStream input = ContactsContract.Contacts
.openContactPhotoInputStream(
SApplication.nowSApplication
.getContentResolver(), uri);
btContactImage = BitmapFactory.decodeStream(input);
Log.i("info", "bt======" + btContactImage);
ivShowImage.setImageBitmap(btContactImage);
} else {//么有头像设置默认头像
ivShowImage
.setImageResource(R.drawable.call_log_contact_image2);
}
2. 通过联系人数据库ID 获取对应头像
ContentResolver cr = getContentResolver();
Uri uri = ContentUris.withAppendedId(
ContactsContract.Contacts.CONTENT_URI,“这里是联系人ID噢”);
InputStream input = ContactsContract.Contacts
.openContactPhotoInputStream(cr, uri);
Bitmap photo = BitmapFactory.decodeStream(input);
viewHolder.item_img.setImageBitmap(photo);