Android - 获取联系人的全尺寸图片

时间:2013-08-23 12:28:08

标签: android android-image

我正在尝试根据联系人ID获取联系人的全尺寸图片,我想出了这个:

private Bitmap getUserPhoto(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 BitmapFactory.decodeStream(fd.createInputStream());
    } catch (IOException e) {
        return null;
    }
}

但图像尺寸太小(缩略图)

如何获取联系人的全尺寸照片?

由于

2 个答案:

答案 0 :(得分:2)

如果手机中有原始图像,则可以使用openContactPhotoInputStream(ContentResolver cr, Uri contactUri, boolean preferHighres)。并设置preferHighres为真。

答案 1 :(得分:0)

您可以调整大小位图

private Bitmap getUserPhoto(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 Bitmap.createScaledBitmap(BitmapFactory.decodeStream(fd.createInputStream()), newWidth, newHeight, true);
    } catch (IOException e) {
        return null;
    }
}    

newWidth和newHeight是Int值。