【问题标题】:Why contact photo have are bad quality/resolution?为什么联系人照片质量/分辨率不好?
【发布时间】:2015-09-08 08:12:03
【问题描述】:

为什么如果我从 URI 获取的照片质量很差(1 张照片),但在标准的电话应用程序分辨率中很好(2 张照片),为什么我的联系人不是来自我的通讯录(3 张照片)? 我需要做什么?

// Display Name
map.put("NAME", (String)cursor.getString( cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));

// Photo Bitmap
Bitmap tmpPhoto = null;
final ContentResolver resolver = getContentResolver();
Cursor sCur = resolver.query(
              ContactsContract.Data.CONTENT_URI,
              null,
              ContactsContract.Data.CONTACT_ID + "=" + id + " AND "
              + ContactsContract.Data.MIMETYPE + "='"
              + ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE + "'", null,
                        null);
if (sCur == null) {
     tmpPhoto = null;
    }
else
{
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, Long
                            .parseLong(id));
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(resolver, uri);
    if (input == null) {
         tmpPhoto = null;
        }
    else {
        tmpPhoto= BitmapFactory.decodeStream(input);
         }
}
sCur.close();
map.put("PHOTO", (Bitmap)tmpPhoto);

我的应用

标准应用

这 3 个联系人不在我的书中

【问题讨论】:

    标签: android bitmap contacts photo


    【解决方案1】:

    大多数应用程序开发人员都希望保留他的堆,因此结果,实际图片被复制并修剪/缩放到较低的分辨率尺寸,以便在ListView 中显示。当您选择该图片时,图像会从其完整尺寸中检索并显示(可能会缩放以适合开发人员的辅助空间)..

    在你的情况下,我没有看到图片分辨率差异,一个被 android 缩放到比另一个更小的显示区域(标准)

    【讨论】:

    • 也许你错了,我更改了列表视图项 xml,这就是我们所拥有的。现在你看出区别了吗? pp.vk.me/c621829/v621829143/2e898/HUfe_N5b3Jk.jpg
    • 您在 ImageView 上使用什么比例类型? FIX_XY 还是什么?如果没有尝试FIX_XY 并查看@NK_BRO
    猜你喜欢
    • 1970-01-01
    • 2014-11-22
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    相关资源
    最近更新 更多