1
연락처에서 사진을 가져 와서 목록보기에 넣을 수 없습니다.이를 HashMap에서 구성합니다. 일부 연락처에 사진이 없으면 기본 사진을 표시하려고합니다. 지금 당장 사진이 보이지 않습니다.연락처 사진 검색 중?
여기 내 코드입니다 : 당신은 그런 SimpleAdapter를 통해 ImageViews에 비트 맵을 할당 할 수 없습니다
cOznaci = (ImageView) findViewById(R.id.cbOznaci);
ArrayList<HashMap<String, Object>> mapa = new ArrayList<HashMap<String, Object>>();
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if(cur.getCount() > 0){
while(cur.moveToNext()){
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
long id2 = Long.parseLong(id);
Object slika = loadContactPhoto(cr, id2);
if(Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0){
final Cursor numCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[]{id}, null);
for(numCur.moveToFirst(); !numCur.isAfterLast(); numCur.moveToNext()){
brTel = numCur.getString(numCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
ime = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
tmpIme = new String[] {ime};
for(int i = 0; i < tmpIme.length; i++){
HashMap<String, Object> imeMapa = new HashMap<String, Object>();
imeMapa.put("imeLista", ime);
imeMapa.put("checkBox", slika);
imeMapa.put("Mobilni", brTel);
mapa.add(imeMapa);
}
}
numCur.close();
} // End if
} // While
}
SimpleAdapter sa = new SimpleAdapter(getApplicationContext(), mapa, R.layout.imenik, new String[] {"imeLista", "checkBox", "Mobilni"}, new int[] {R.id.tvImeImenik, R.id.cbOznaci, R.id.tvSamoProba});
lImenik.setAdapter(sa);
}
});
} // onCreate
public static Bitmap loadContactPhoto(ContentResolver cr, long id) {
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id);
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);
if (input == null) {
return null;
}
return BitmapFactory.decodeStream(input);
}
어떻게 표시 할 수 있습니까? – Wolf87
'while'루프에서 'String photoUri = cur.getString (cur.getColumnIndex (ContactsContract.Contacts.PHOTO_URI));'을 통해 사진 URI를 가져옵니다. 그런 다음 loadContactPhoto()를 호출 할 필요가 없으며 비트 맵 대신 SimpleAdapter에 전달할 수 있습니다. –