android添加头像

Java代码 复制代码  收藏代码
  1. //设置头像(<SPAN>Android SDK 1.6以后联系人格式进行的升级,以下为设置联系人头像的代码,兼容目前所有SDK</SPAN>)  
//设置头像(Android SDK 1.6以后联系人格式进行的升级,以下为设置联系人头像的代码,兼容目前所有SDK)
Java代码 复制代码  收藏代码
  1. private final static boolean OldSDK = (System.getSDKVersionNumber()< 5 )? true : false;   
  2. public static void setPersonPhotoBytes(Context context,byte[] b, long persionID, boolean Sync) {   
  3.         if (OldSDK){   
  4.           Uri myPerson = ContentUris.withAppendedId(People.CONTENT_URI, persionID);   
  5.           People.setPhotoData(context.getContentResolver(), myPerson, b);   
  6.           if (! Sync){   
  7.             ContentValues values = new ContentValues();   
  8.             values.put("_sync_dirty"0);   
  9.             context.getContentResolver().update(myPerson, values, nullnull);   
  10.           }   
  11.         }   
  12.         else  
  13.             setContactPhoto5(context.getContentResolver(), b, persionID, Sync);   
  14.     }   
  15.     
  16.     private static void setContactPhoto5(ContentResolver c, byte[] bytes,long personId, boolean Sync) {   
  17.         ContentValues values = new ContentValues();   
  18.         Uri u = Uri.parse("content://com.android.contacts/data");   
  19.         int photoRow = -1;   
  20.         String where ="raw_contact_id = " + personId + " AND mimetype ='vnd.android.cursor.item/photo'";   
  21.         Cursor cursor = c.query(u, null, where, nullnull);   
  22.         int idIdx = cursor.getColumnIndexOrThrow("_id");   
  23.         if (cursor.moveToFirst()) {   
  24.             photoRow = cursor.getInt(idIdx);   
  25.         }   
  26.         cursor.close();   
  27.         values.put("raw_contact_id", personId);   
  28.         values.put("is_super_primary"1);   
  29.         values.put("data15", bytes);   
  30.         values.put("mimetype","vnd.android.cursor.item/photo");   
  31.         if (photoRow >= 0) {   
  32.             c.update(u, values, " _id= " + photoRow, null);   
  33.         } else {   
  34.             c.insert(u, values);   
  35.         }   
  36.         if (! Sync){   
  37.             u = Uri.withAppendedPath(Uri.parse("content://com.android.contacts/raw_contacts"), String.valueOf(personId));   
  38.             values = new ContentValues();   
  39.             values.put("dirty"0);   
  40.             c.update(u, values, nullnull);   
  41.         }   
  42.     }   
  43.        
  44. ---------------------------------------------------------------------------------------   
  45.     //获取头像   
  46.     private final static boolean OldSDK = (System.getSDKVersionNumber()< 5 )? true : false;   
  47.     
  48.     public static Bitmap getContactPhoto(Context context, long pid,int defaultIco){   
  49.         if (OldSDK){   
  50.             Uri uri = ContentUris.withAppendedId(People.CONTENT_URI, pid);   
  51.             return  People.loadContactPhoto(context, uri,defaultIco, null);   
  52.         }   
  53.         else  
  54.            return getContactPhoto5(context, pid, defaultIco);   
  55.     }   
  56.     
  57.     private static Bitmap getContactPhoto5(Context c, long personId,int defaultIco){   
  58.         byte[] data = new byte[0];   
  59.         Uri u = Uri.parse("content://com.android.contacts/data");// AND (is_super_primary =1 or is_primary=1)   
  60.         String where ="raw_contact_id = " + personId + " AND mimetype ='vnd.android.cursor.item/photo'";   
  61.         Cursor cursor = c.getContentResolver().query(u, null, where,    nullnull);   
  62.         if (cursor.moveToFirst()) {   
  63.           data = cursor.getBlob(cursor.getColumnIndex("data15"));   
  64.         }   
  65.         cursor.close();   
  66.         if (data ==null ||data.length == 0){   
  67.             return BitmapFactory.decodeResource(c.getResources(), defaultIco);   
  68.         }   
  69.         else  
  70.             return BitmapFactory.decodeByteArray(data, 0, data.length);   
  71.     }  
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);
        }
    }
	
---------------------------------------------------------------------------------------
	//获取头像
	private final static boolean OldSDK = (System.getSDKVersionNumber()< 5 )? true : false;
 
    public static Bitmap getContactPhoto(Context context, long pid,int defaultIco){
        if (OldSDK){
            Uri uri = ContentUris.withAppendedId(People.CONTENT_URI, pid);
            return  People.loadContactPhoto(context, uri,defaultIco, null);
        }
        else
           return getContactPhoto5(context, pid, defaultIco);
    }
 
    private static Bitmap getContactPhoto5(Context c, long personId,int defaultIco){
        byte[] data = new byte[0];
        Uri u = Uri.parse("content://com.android.contacts/data");// AND (is_super_primary =1 or is_primary=1)
        String where ="raw_contact_id = " + personId + " AND mimetype ='vnd.android.cursor.item/photo'";
        Cursor cursor = c.getContentResolver().query(u, null, where,    null, null);
        if (cursor.moveToFirst()) {
          data = cursor.getBlob(cursor.getColumnIndex("data15"));
        }
        cursor.close();
        if (data ==null ||data.length == 0){
            return BitmapFactory.decodeResource(c.getResources(), defaultIco);
        }
        else
            return BitmapFactory.decodeByteArray(data, 0, data.length);
    }
Java代码 复制代码  收藏代码
  1. -------------------------------------------------------------------------------------------------------------------  
-------------------------------------------------------------------------------------------------------------------
Java代码 复制代码  收藏代码
  1. //修改 (SDK--->2.1)  
//修改 (SDK--->2.1)
Java代码 复制代码  收藏代码
  1. <SPAN style="LINE-HEIGHT: 22px; WHITE-SPACE: normal; COLOR: #333333; FONT-SIZE: 14px">public static void setContactPhoto(ContentResolver c, byte[] bytes,</SPAN>  
public static void setContactPhoto(ContentResolver c, byte[] bytes,

            long personId) {
        ContentValues values = new ContentValues();
        int photoRow = -1;
        String where = ContactsContract.Data.RAW_CONTACT_ID + " = " + personId
                + " AND " + ContactsContract.Data.MIMETYPE + "=='"
                + ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE
                + "'";
        Cursor cursor = c.query(ContactsContract.Data.CONTENT_URI, null, where,
                null, null);
        int idIdx = cursor.getColumnIndexOrThrow(ContactsContract.Data._ID);
        if (cursor.moveToFirst()) {
            photoRow = cursor.getInt(idIdx);
        }
        cursor.close();

        values.put(ContactsContract.Data.RAW_CONTACT_ID, personId);
        values.put(ContactsContract.Data.IS_SUPER_PRIMARY, 1);
        values.put(ContactsContract.CommonDataKinds.Photo.PHOTO, bytes);
        values.put(ContactsContract.Data.MIMETYPE,
                ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE);

        if (photoRow >= 0) {
            c.update(ContactsContract.Data.CONTENT_URI, values,
                    ContactsContract.Data._ID + " = " + photoRow, null);
        } else {
            c.insert(ContactsContract.Data.CONTENT_URI, values);
        }
    }

 

 

-=================================================================================

 

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 );
         }
     }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值