0

我想将未裁剪的联系人图像照片设置为 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);
    }
4

1 回答 1

1

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;
     }
 }
于 2012-05-26T21:35:37.053 回答