我使用以下代码从一个联系人处检索照片:
private Uri getPhotoUri(String idContact) {
try {
Cursor cur = getApplicationContext().getContentResolver().query(
ContactsContract.Data.CONTENT_URI,
null,
ContactsContract.Data.CONTACT_ID + "=" + idContact + " AND "
+ ContactsContract.Data.MIMETYPE + "='"
+ ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE + "'", null,
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(idContact));
return Uri.withAppendedPath(person, ContactsContract.Contacts.Photo.CONTENT_DIRECTORY);
}
所以,问题是,通过这个代码,我可以检索低分辨率的照片。我怎样才能拍到更好的照片?
也许我不应该使用目录。
谢谢您。
1条答案
按热度按时间slsn1g291#
这段代码非常适用于获取高分辨率照片:
另外,仅供参考,在api 14之前不存在高分辨率联系人照片,因此如果您在api 13或更低版本的avd/设备上运行它,则无法获得高分辨率照片。
看看这个问题:获取高分辨率的联系照片作为位图低于api级别14 android的更多信息。