Mam adapter listview
i próbuję następujące w metodzie newView
:Jak zdobyć Android Kontakt miniatur
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
final LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(layout, parent, false);
long contactId = Long.valueOf(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)));
String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
boolean hasPhone = Boolean.parseBoolean(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)));
String thumbnailUri = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.PHOTO_THUMBNAIL_URI));
TextView name_text = (TextView) v.findViewById(R.id.name_entry);
if (name_text != null) {
name_text.setText(contactName);
}
name_text.setTag(new Contact(contactId, hasPhone));
ImageView thumbnail = (ImageView) v.findViewById(R.id.thumbnail);
if (thumbnailUri != null) {
thumbnail.setImageURI(Uri.parse(thumbnailUri));
} else {
thumbnail.setImageResource(R.drawable.ic_launcher);
}
return v;
}
Ale gdy próbuję analizować URI, który jest przechowywany w thumbnailUri, ja otrzymać następujący błąd:
08-09 01:58:38.619: I/System.out(1471): resolveUri failed on bad bitmap uri: content://com.android.contacts/contacts/1/photo
Czy podążam tą drogą w niewłaściwy sposób? Każda pomoc będzie bardzo ceniona!
Czy umieścisz tam informacje o logcat, aby sprawdzić, jaki identyfikator URI, który próbujesz rozwiązać, i opublikować go tutaj? Log.i ("URI", thumbnailUri); – RyanInBinary
treść: //com.android.contacts/contacts/1/photo, co według mnie jest poprawne. Może to dlatego, że używam emulatora. Potrzebuję prawdziwego urządzenia:/ –
Właśnie dostałem swoje prawdziwe urządzenie. To działa, mój kod jest w porządku. –