Android获取联系人头像的方法
程序员文章站
2024-03-06 15:59:32
本文实例讲述了android获取联系人头像的方法。分享给大家供大家参考,具体如下:
public byte[] getphoto(string people_id...
本文实例讲述了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); if (! sync){ contentvalues values = new contentvalues(); values.put("_sync_dirty", 0); context.getcontentresolver().update(myperson, values, null, null); } } else setcontactphoto5(context.getcontentresolver(), b, persionid, sync); } private static void setcontactphoto5(contentresolver c, byte[] bytes,long personid, boolean sync) { contentvalues values = new contentvalues(); uri 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 cursor = c.query(u, null, where, null, null); int ididx = cursor.getcolumnindexorthrow("_id"); if (cursor.movetofirst()) { photorow = 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"); if (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程序设计有所帮助。