【发布时间】:2016-02-19 18:22:12
【问题描述】:
我正在尝试获取电话联系人图像并设置为 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 比例类型。但联系人图像仍然被拉伸。
任何人都可以帮助避免联系人图像的拉伸
【问题讨论】:
-
可以加截图吗?
-
@Awais King 我刚刚添加了截图,你可以检查一下
-
是因为一些低端的安卓设备因为内存的原因,会以低分辨率保存联系人的图片,所以当你在检索后尝试拉伸时,图片的边缘会出现很多噪点或变得模糊跨度>
-
不,我用的是小米,它有 1 GB 内存,运行 4.4 版本。在默认呼叫屏幕中,联系人照片显示在呼叫背景中,并且没有像素化。刚才我尝试将图像从厨房设置到 imageView 中。当时图像也没有像素化。当我尝试通过 isung conatct id 从联系人中获取图像时,只有图像被像素化@Awais King
-
您是用同一个设备拍摄联系人的照片,还是已经设置好?
标签: android performance android-layout android-contentprovider android-contacts