2013-06-21 2 views
0

게으른 어댑터에 연락처 사진을 표시하려고합니다. 나는 PhotoList를 ArrayList에 집어 넣을 수 있었다. 나는 그것을 이미지 뷰에 어떻게 표시할지 모르겠다. 여기사진 연락처 ID보기 - Lazyloading

내가 무슨 짓입니다 :

 while (cur.moveToNext()) 
     { 
      String Sid = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 
      String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
      String photo = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.PHOTO_ID)); 

      Log.e("Photo",""+photo); 

      HashMap<String, String> map = new HashMap<String, String>(); 

      map.put("name", name); 
      map.put("id", Sid); 
      map.put("photo",photo); 

      DetailsList.add(map); 
     } 
    } 
    cur.close(); 


    adapter = new ContactNamesAdapter(this, DataList);   
    // updating listview 
    cl.setAdapter(adapter); 
} 

}

언제 사진의 값을 로그 : 나는 photo_ID 번호를 얻을. 내가 전화 어댑터 클래스는 다음과 같이 이름을 보여줍니다

public View getView(int position, View convertView, ViewGroup parent) 
{ 
    View vi=convertView; 
    if(convertView==null) 

     vi = inflater.inflate(R.layout.contacts_names_row, null); 

    TextView name = (TextView)vi.findViewById(R.id.name); 
    name.setText(data.get(position).get("name")); 

    return vi; 

} 

}

I는 어댑터 측면에있는 사진이 부착 된 신분증을 표시에 붙어 있어요?

+0

왜 게으른 어댑터이고 왜 어댑터 코드를 게시하지 않습니까? – Shark

+0

목록보기는 alistview입니다. 어댑터가 데이터를보기로 변환하는 역할을합니다. - "사용자 정의 목록보기"는 본질적으로 목록보기의 데이터 파일로 확장 된 스타일의 XML입니다. 어댑터를 게시하십시오 ..... – Shark

+0

예. 코드를 업데이트하십시오. 확인하십시오 .. 질문 감사합니다! – TheDevMan

답변

0

PHOTO_ID 대신 PHOTO_URI 또는 PHOTO_THUMBNAIL_URI을 사용해보세요. 그런 다음 어댑터를 사용하여 ImageView에 표시하십시오.

참조 :이 이미지를 표시 할 수있는 가장 쉬운 방법이 될 것입니다 파악 ContactsContract.Contacts

+0

PHOTO_URI를 가져올 수 없습니다. PHOTO_ID ...를 사용하고 있습니다. 내가 시도하고있는 쿼리에서 – TheDevMan

+0

[이 질문에] (http://stackoverflow.com/questions/2383580/how-do-i-) load-a-contact-photo)가 도움이 될 것입니다. – hypd09

0

깊은 연구 후. 지금은 잘 작동 중입니다!

ImageView profile = (ImageView)vi.findViewById(R.id.imageHolder);     
    Uri my_contact_Uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, String.valueOf(id); 
    InputStream photo_stream = ContactsContract.Contacts.openContactPhotoInputStream(getContext().getContentResolver(),my_contact_Uri);    
    if(photo_stream != null) 
    { 
    BufferedInputStream buf =new BufferedInputStream(photo_stream); 
    Bitmap my_btmp = BitmapFactory.decodeStream(buf); 
    profile.setImageBitmap(my_btmp); 
    } 
    else 
    { 
     profile.setImageResource(R.drawable.no_pic); 
    }