设置为ImageView时,将联系人照片拉伸

时间:2015-11-19 03:55:37

标签: android

我正在尝试获取手机通讯录图像并设置为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" />

1 个答案:

答案 0 :(得分:0)

正如Sud在comment中建议的那样,更改layout.xml中的ImageView代码。

  1. 设置layout_width&amp; layout_heightwrap_content
  2. 删除layout_alignParentLeftlayout_alignParentRight
  3. 删除scaleType代码
  4. 结果:

     <ImageView
                android:id="@+id/imageview"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/contactimage" />