Android 未截取的接触照片
我想在Android 2.0以上版本中将未删减的联系人图片设置为全屏图片背景。我使用下面的代码来获取裁剪后的缩略图,但由于照片在库中是全屏的,如何访问此照片 这段代码给出了裁剪后的缩略图,我如何才能得到未裁剪的全屏Android 未截取的接触照片,android,Android,我想在Android 2.0以上版本中将未删减的联系人图片设置为全屏图片背景。我使用下面的代码来获取裁剪后的缩略图,但由于照片在库中是全屏的,如何访问此照片 这段代码给出了裁剪后的缩略图,我如何才能得到未裁剪的全屏 public static Bitmap loadContactPhoto(ContentResolver cr, long id) { Uri uri = ContentUris.withAppendedId(Contacts
public static Bitmap loadContactPhoto(ContentResolver cr, long 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);
}
Android文档说 单个联系人的只读子目录,其中包含 联系人的主要照片。照片最多可以以两种方式存储- 默认的“照片”是一个缩略图大小的图像,直接存储在 数据行,而“显示照片”(如果存在)是较大的 以文件形式存储的版本 再次来自文档
public InputStream openDisplayPhoto(long contactId) {
Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
Uri displayPhotoUri = Uri.withAppendedPath(contactUri, Contacts.Photo.DISPLAY_PHOTO);
try {
AssetFileDescriptor fd =
getContentResolver().openAssetFileDescriptor(displayPhotoUri, "r");
return fd.createInputStream();
} catch (IOException e) {
return null;
}
}
联系人已弃用需要使用ContactsContract API v5及更高版本,然后在API 14之前无法找到获取高分辨率图像的方法,API 14有一些API可以轻松获取图像,但是对于运行Android 2.0-2.3的手机如何?如果您找不到任何东西,我建议您使用它,您可以在最终删除联系人后使用新版本升级您的应用程序。关于“弃用”的讨论可能会有用。抱歉,您上面的显示照片字段仅为API 14及以上版本,因此看起来在V4.0之前只有缩略图您是对的,它在V4.0中引入,现在开始。。。