Android:联系人照片在尝试设置为 ImageView 时像素化
Android: Contact photo is pixelated while trying to set into an ImageView
我正在尝试获取 phone 联系人图像并设置到 ImageView 中。我正在获取图像,但是当我尝试将图像设置为 ImageView 时,它被像素化了。
获取图片的代码
String select = "(" + ContactsContract.Contacts.DISPLAY_NAME + " == \"" + name + "\" )";
Cursor c = getApplicationContext().getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, CONTACTS_SUMMARY_PROJECTION, select, null, ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
startManagingCursor(c);
if (c.moveToNext()) {
idValue = c.getString(0);
InputStream inputStream = ContactsContract.Contacts.openContactPhotoInputStream(getApplicationContext().getContentResolver(),
ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, new Long(idValue)));
if (inputStream != null) {
photo = BitmapFactory.decodeStream(inputStream);
contact_image.setImageBitmap(photo);
}
}
我想显示联系人的详细信息,因此我尝试按姓名获取联系人 ID。
Layout.xml
<ImageView
android:id="@+id/contact_image"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:scaleType="centerCrop"
android:src="@drawable/un_known_avtar" />
我尝试了 xml 几乎所有的音阶类型。但是联系人图像仍然被拉伸。
任何人都可以帮助避免接触图像的拉伸
尝试在 openContactPhotoInputStream
末尾添加 true 布尔值以获得高分辨率 (需要 API 14 级或更高级别)
InputStream inputStream = ContactsContract.Contacts.openContactPhotoInputStream(getApplicationContext().getContentResolver(),
ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, new Long(idValue)), true);
来源:Large Photo Version from contacts in android
我正在尝试获取 phone 联系人图像并设置到 ImageView 中。我正在获取图像,但是当我尝试将图像设置为 ImageView 时,它被像素化了。
获取图片的代码
String select = "(" + ContactsContract.Contacts.DISPLAY_NAME + " == \"" + name + "\" )";
Cursor c = getApplicationContext().getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, CONTACTS_SUMMARY_PROJECTION, select, null, ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
startManagingCursor(c);
if (c.moveToNext()) {
idValue = c.getString(0);
InputStream inputStream = ContactsContract.Contacts.openContactPhotoInputStream(getApplicationContext().getContentResolver(),
ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, new Long(idValue)));
if (inputStream != null) {
photo = BitmapFactory.decodeStream(inputStream);
contact_image.setImageBitmap(photo);
}
}
我想显示联系人的详细信息,因此我尝试按姓名获取联系人 ID。
Layout.xml
<ImageView
android:id="@+id/contact_image"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:scaleType="centerCrop"
android:src="@drawable/un_known_avtar" />
任何人都可以帮助避免接触图像的拉伸
尝试在 openContactPhotoInputStream
末尾添加 true 布尔值以获得高分辨率 (需要 API 14 级或更高级别)
InputStream inputStream = ContactsContract.Contacts.openContactPhotoInputStream(getApplicationContext().getContentResolver(),
ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, new Long(idValue)), true);
来源:Large Photo Version from contacts in android