Android:联系人照片在尝试设置为ImageView时被像素化

Android:联系人照片在尝试设置为ImageView时被像素化,android,performance,android-layout,android-contentprovider,android-contacts,Android,Performance,Android Layout,Android Contentprovider,Android Contacts,我正在尝试获取电话联系人图像并设置为ImageView。我正在获取图像,但当我尝试将图像设置为ImageView时,它是像素化的 获取图像的代码 String select = "(" + ContactsContract.Contacts.DISPLAY_NAME + " == \"" + name + "\" )"; Cursor c = getApplicationContext().getContentResolver().query(ContactsContra

我正在尝试获取电话联系人图像并设置为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或更高)


来源:

你能添加屏幕截图吗?@Awais King我刚添加了屏幕截图,你能检查一下吗?这是因为一些低端安卓设备使用RAM将联系人的图像保存为低分辨率,所以当你在检索图像后尝试拉伸时,图像边缘会有很多噪音或变得模糊不,我使用的是Xiamoi,它有1GB内存,运行4.4版本。在默认的通话屏幕中,联系人照片显示在通话背景中,且未像素化。刚才我试着从厨房将图像设置到imageView中,当时图像也没有像素化。当我试图通过isung conatct id从联系人处获取图像时,当时只有图像是像素化的@Awais King您是用同一台设备拍摄联系人的照片,还是已经设置好了?谢谢,对于较低版本的@Awais King,我们应该怎么做?我不认为您可以在较低的API中这样做,因为
Contacts.Photo.DISPLAY\u Photo
仅在14+APIsOk中提供谢谢@Awais King
InputStream inputStream = ContactsContract.Contacts.openContactPhotoInputStream(getApplicationContext().getContentResolver(),
ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, new Long(idValue)), true);