这里我从光标:
获取值 if (mProfileCursor.moveToFirst()) {
byte[] blob = mProfileCursor.getBlob(
mProfileCursor.getColumnIndex(ContactsContract.Profile.PHOTO_URI));
ByteArrayInputStream inputStream = new ByteArrayInputStream(blob);
BufferedInputStream bis = new BufferedInputStream(inputStream,1024);
bitmap = BitmapFactory.decodeStream(bis);
}
} finally {
if (mProfileCursor != null) {
mProfileCursor.close();
}
}
我正在尝试将byte []更改为位图,但我总是 null ,根据以下帖子Android: bitmapfactory.decodestream returns null中的答案,我尝试了 BufferedInputStream 但是它不适合我。 另外Romain Guy这里说这是android中已知的缺陷,但答案很老,请告诉我是否有办法让位图正确。
答案 0 :(得分:1)
public static final String PHOTO_URI
在API级别11中添加 可用于检索联系人的全尺寸照片的URI。如果PHOTO_FILE_ID不为null,则将使用基于CONTENT_URI的URI填充。否则,将使用与PHOTO_THUMBNAIL_URI相同的值填充此值。照片可以通过URI(此字段)或ID(请参阅PHOTO_ID)来引用。如果PHOTO_FILE_ID或PHOTO_ID不为空,则PHOTO_URI和PHOTO_THUMBNAIL_URI不应为空(但不一定相反)。因此,使用PHOTO_URI是一种更健壮的检索联系人照片的方法。
输入:TEXT
常数:“photo_uri”
这就是doc说的,pskink是对的,它返回一个String。另外,如果添加decodeStream无法解码图像数据并且也不会生成任何异常,则返回null,因此请小心,在使用之前检查值。