根据官方文档,其中包含有关联系人照片处理的信息(Android 4.0):
大照片
Android现在支持联系人的高分辨率照片。现在,当 您将照片推送到联系人记录中,系统会将其处理 96x96缩略图(如前所述)和256x256“显示屏 照片“存储在一个新的基于文件的照片商店(确切地说 系统选择的尺寸可能在将来有所不同)。您可以 通过在平时放置一张大照片为联系人添加一张大照片 数据行的PHOTO列,系统将处理该列 适当的缩略图和显示照片记录。
所以,我想知道我是否存储了大小为400x400 px
的照片,是否有可能以原始大小检索此照片,或者我必须高兴只有照片减少大小
答案 0 :(得分: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.
}
}
使用文件描述符可以读/写联系人照片。此外,我认为您需要与照片的商店缩略图联系
For more info see ContactsContract.RawContacts.DisplayPhoto class
答案 1 :(得分:0)
简单的解决方案:
注意:我不知道手机内部是否有更高质量的版本,但我仍在努力。