【发布时间】:2013-01-12 11:23:03
【问题描述】:
我在获取和设置联系人图像作为视图背景时遇到问题,令人惊讶的是,很少有关于如何执行此操作的示例。我正在尝试构建类似于显示大型联系人照片的人脉应用程序。
这就是我现在正在做的事情:
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, Long.valueOf(id));
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(context.getContentResolver(), uri);
Bitmap bm = BitmapFactory.decodeStream(input);
Drawable d = new BitmapDrawable(bm);
button.setBackgroundDrawable(drawable);
这可行,但是它使用的 URI 会获取缩略图,因此即使有一张大照片,在缩放以适合 imageView 时,图像看起来也很糟糕。我知道另一种获取实际获取大照片的 URI 的方法是:
final Uri imageUri = Uri.parse(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.PHOTO_URI)));
但是我还没有设法将它放到 imageView 中,也许上面的代码可以调整为使用第二个 uri。如果您知道如何使用第二个 uri,或者如果有比通过 URI 更简单的方法来获取联系人图像,请告诉我。任何信息将不胜感激。
【问题讨论】:
-
我想这就是你要找的stackoverflow.com/a/8586182/1832000
-
我一直没能实现。它需要变量 url 和文件
ImageOperations(this,url,filename)我不知道这些是什么。如果您知道使用什么作为 url 和文件名(如果可行),我会接受您的回答。