此代码(在我的CustomAdapter类中)仅基于向我发送文本消息的联系人显示联系人ID,并将其放入ArrayList,然后显示列表.
我在每个联系人ID旁边都有一个名为holder.photo的ImageVIEw.如何在ImageVIEw中显示联系人的照片?
String folder = "content://sms/inBox/"; Uri mSmsqueryUri = Uri.parse(folder); messages = new ArrayList<String>(); contactID = new ArrayList<String>(); SMS = new ArrayList<String>(); try { c = context.getContentResolver().query(mSmsqueryUri, new String[] { "_ID", "address", "date", "body" }, null, null, null); if (c == null) { Log.i(TAG, "cursor is null. uri: " + mSmsqueryUri); } } catch (Exception e) { //Log.e(TAG, e.getMessage()); } finally { c.close(); } c.movetoFirst(); while (c.movetoNext()) { phoneNumber = c.getString(0); contactID.add(phoneNumber); } holder.photo.????? //contact will cycle through all names and display each in a ListvIEw. holder.contact.setText(contactID.get(position);
目前,我的列表视图显示以下内容:
> androID_icon —–约翰·杜
> androID_icon —–简史密斯
> androID_icon —– Foo barr
解决方法:
尝试这个..
public voID getContacts(ContentResolver cr) { Cursor phones = cr.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); while (phones.movetoNext()) { String name = phones .getString(phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.disPLAY_name)); String contactID = phones .getString(phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID)); Bitmap bitmap = loadContactPhoto( getContentResolver(), Long.valueOf(contactID)) } phones.close();
获取位图图像
public static Bitmap loadContactPhoto(ContentResolver cr, long ID) { Uri uri = ContentUris.withAppendedID( ContactsContract.Contacts.CONTENT_URI, ID); inputStream input = ContactsContract.Contacts .openContactPhotoinputStream(cr, uri); if (input == null) { return null; } return BitmapFactory.decodeStream(input);}
总结 以上是内存溢出为你收集整理的android-如何显示来自联系人ID的联系人照片?全部内容,希望文章能够帮你解决android-如何显示来自联系人ID的联系人照片?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)