gpt4 book ai didi

java - 正在检索联系人照片?

转载 作者:行者123 更新时间:2023-12-01 05:31:03 25 4
gpt4 key购买 nike

我无法从联系人中获取照片并将其放入 ListView 中,我将其组织在 HashMap 中。当某些联系人没有照片时,我想显示默认照片。我现在没有收到任何照片。

这是我的代码:

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

最佳答案

您无法通过像这样的 SimpleAdapter 将位图分配给 ImageView,只能使用字符串和整数自动分配。您将需要创建一个ViewBinder来执行更复杂的分配。

但是,我建议不要使用该 14 级 API,而是使用 PHOTO_URI。这是一个 String,SimpleAdapter 的默认 ViewBinder 应该做正确的事情。

关于java - 正在检索联系人照片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8974499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com