Android获取联系人头像的方法

这篇文章主要介绍了Android获取联系人头像的方法,结合实例形式分析了Android调用联系人头像的相关操作技巧,涉及Bitmap对象及ImageView的使用方法,需要的朋友可以参考下

本文实例讲述了Android获取联系人头像的方法。分享给大家供大家参考,具体如下:

 public byte[] getPhoto(String people_id) { String photo_id = null; String selection1 = ContactsContract.Contacts._ID + " = " + people_id; Cursor cur1 = getContentResolver().query( ContactsContract.Contacts.CONTENT_URI, null, selection1, null, null); if (cur1.getCount() > 0) { cur1.moveToFirst(); photo_id = cur1.getString(cur1.getColumnIndex(ContactsContract.Contacts.PHOTO_ID)); //System.out.println("photo_id:" + photo_id); } String[] projection = new String[] { ContactsContract.Data.DATA15 }; String selection = ContactsContract.Data._ID + " = " + photo_id; Cursor cur = getContentResolver().query( ContactsContract.Data.CONTENT_URI, projection, selection, null, null); cur.moveToFirst(); byte[] contactIcon = cur.getBlob(0); System.out.println("conTactIcon:" + contactIcon); if (contactIcon == null) { return null; } else { return contactIcon; } } 

以下代码将字节数组转化成Bitmap对象,然后再ImageView中显示出来

 private ImageView image; byte[] photo = getPhoto(contactId); Bitmap map = BitmapFactory.decodeByteArray(photo, 0,photo.length); image.setImageBitmap(map); 

通过代码设置Android联系人的头像:

 private final static boolean OldSDK = (System.getSDKVersionNumber()<5 )? true : false; public static void setpersonphotobytes(context context,byte[] b, long persionid, boolean sync) { if (oldsdk){ uri myperson=ContentUris.withAppendedId(People.CONTENT_URI, persionid); people.setphotodata(context.getcontentresolver(), myperson, b); (! sync){ contentvalues values=new contentvalues(); values.put("_sync_dirty", 0); context.getcontentresolver().update(myperson, values, null, null); } else setcontactphoto5(context.getcontentresolver(), sync); private setcontactphoto5(contentresolver c, byte[] bytes,long personid, new u=Uri.parse("content://com.android.contacts/data"); int photorow=-1; string where="raw_contact_id =" + personid " and mimetype='vnd.android.cursor.item/photo' "; cursor c.query(u, where, ididx=cursor.getColumnIndexOrThrow("_id"); (cursor.movetofirst()) cursor.getint(ididx); cursor.close(); values.put("raw_contact_id", personid); values.put("is_super_primary", 1); values.put("data15", bytes); values.put("mimetype","vnd.android.cursor.item photo"); (photorow>= 0) { c.update(u, values, " _id= " + photoRow, null); } else { c.insert(u, values); } if (! Sync){ u = Uri.withAppendedPath(Uri.parse("content://com.android.contacts/raw_contacts"), String.valueOf(personId)); values = new ContentValues(); values.put("dirty", 0); c.update(u, values, null, null); } } 

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android操作SQLite数据库技巧总结》、《Android操作json格式数据技巧总结》、《Android数据库操作技巧总结》、《Android文件操作技巧汇总》、《Android编程开发之SD卡操作方法汇总》、《Android资源操作技巧汇总》及《Android控件用法总结

希望本文所述对大家Android程序设计有所帮助。

以上就是Android获取联系人头像的方法的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » 移动