通讯录就要做完了  就剩下给联系人添加头像了  因为对输出输入流  不是很熟悉  所以  头像一直没有添加成功  哪位大神能帮忙贴个代码  指教一下  谢谢   (关于通讯录中联系人头像的添加及把添加的头像保存在系统的数据库中)

解决方案 »

  1.   


            public byte[] strToByte(String a) {//String转换为2进制
             byte[] by = null;
             if(a.equals("null"))
             {
             return by;
             }else
             {
             String[] b = a.split(",");
             by = new byte[b.length];
             for(int i =0;i<b.length;i++)
             {
             by[i] =Byte.parseByte(b[i]);
             }
             }
               return by;
            }
            
            private Bitmap Bytes2Bimap(byte[] b){  //2进制转换为图像
                if(b.length!=0){  
                    return BitmapFactory.decodeByteArray(b, 0, b.length);  
                }  
                else {  
                    return null;  
                }  
          }
    给你2段代码吧。我的思路就是通过接收图片的2进制json数据重新将图片绘制出来。
    怎么设置上去不用我说了吧
      

  2.   


    SQLite数据库可以存bitmap.
      

  3.   


    我用的就是  调用系统的图片库  然后把图片添加到组件上   现在联系人头像的添加  已经做完了  但是 更新不了  我觉得  是  我更新时的访问数据库的语句 有点问题  导致没有更新上   请问  你有做更新么  
    ContentResolver contentResolver=Updata.this.getContentResolver();
     ByteArrayOutputStream stream = new ByteArrayOutputStream();  
      byte[] arrbyte=null;
              if(bitmap!=null)
              {
               bitmap.compress(Bitmap.CompressFormat.JPEG, 75, stream);// (0 - 100)压缩文件   
              arrbyte=stream.toByteArray();
               if(arrbyte==null)
               {
                Log.e("erroe", "arrByte=null");
               }
    //            setContactPhoto5(contentResolver,arrbyte,Long.parseLong(people.id),false);
              }
              else
              {
               Log.e("erroe", "bitmap=null");
              }
          

    // 更新photo
    ops
    .add(ContentProviderOperation
    .newUpdate(ContactsContract.Data.CONTENT_URI)
    .withSelection(
    ContactsContract.Data.CONTACT_ID
    + "=?"
    + " AND "
    + ContactsContract.Data.MIMETYPE
    + "=?",
    new String[] {
    people.id,
    ContactsContract.CommonDataKinds.Website.CONTENT_ITEM_TYPE,
     })
    .withValue(
    ContactsContract.CommonDataKinds.Photo.PHOTO,
    arrbyte).build());
      

  4.   

    你用的是第二种方法,那就是你sql语句问题了。update语句更新。我实现了。。我是获得图片路径。存入数据库更新时就覆盖路径就行了。
      

  5.   

    5楼朋友,,ContactsContract.CommonDataKinds.Website.CONTENT_ITEM_TYPE,
    这里写错了,,ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE,