Android 未截取的接触照片

Android 未截取的接触照片,android,Android,我想在Android 2.0以上版本中将未删减的联系人图片设置为全屏图片背景。我使用下面的代码来获取裁剪后的缩略图,但由于照片在库中是全屏的,如何访问此照片 这段代码给出了裁剪后的缩略图,我如何才能得到未裁剪的全屏 public static Bitmap loadContactPhoto(ContentResolver cr, long id) { Uri uri = ContentUris.withAppendedId(Contacts

我想在Android 2.0以上版本中将未删减的联系人图片设置为全屏图片背景。我使用下面的代码来获取裁剪后的缩略图,但由于照片在库中是全屏的,如何访问此照片

这段代码给出了裁剪后的缩略图,我如何才能得到未裁剪的全屏

       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中引入,现在开始。。。