0

根据包含有关联系人照片处理信息的官方文档(Android 4.0):

大照片

Android 现在支持联系人的高分辨率照片。现在,当您将照片推送到联系人记录中时,系统会将其同时处理为 96x96 缩略图(就像以前一样)和存储在新的基于文件的照片存储中的 256x256“显示照片”(确切尺寸系统选择在未来可能会有所不同)。您可以通过将一张大照片放在数据行的常用 PHOTO 列中来为联系人添加一张大照片,然后系统会将其处理为适当的缩略图并显示照片记录。

所以,我想知道我是否存储了一张大小为 的照片400x400 px,是否有可能以原始尺寸检索这张照片,或者我必须很高兴只有一张缩小尺寸的照片?

4

2 回答 2

1

试试这个例子:

 public void writeDisplayPhoto(long rawContactId, byte[] photo) {
     Uri rawContactPhotoUri = Uri.withAppendedPath(
             ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId),
             RawContacts.DisplayPhoto.CONTENT_DIRECTORY
     );

     try {
         AssetFileDescriptor fd = getContentResolver().openAssetFileDescriptor(
             rawContactPhotoUri, 
             "rw"
         );

         OutputStream os = fd.createOutputStream();
         os.write(photo);

         os.close();
         fd.close();
     } catch (IOException e) {
         // Handle error cases.
     }
  }

使用文件描述符,您可以读/写联系人照片。另外我认为您需要存储照片的缩略图才能联系

有关详细信息,请参阅 ContactsContract.RawContacts.DisplayPhoto 类

于 2014-05-27T08:47:28.620 回答
0

简单的解决方案:

  • 从任何 PC 登录到您的 gmail 帐户,然后搜索“联系人”
  • 在联系人页面中:输入您要搜索的联系人姓名
  • 单击您想要的联系人并选择“保存图像...”

注意:我不知道手机内部是否有更高质量的版本,但我仍在努力。

于 2016-06-21T07:07:56.177 回答