Ich habe einen listview
Adapter und ich versuche, die folgenden in der newView
Methode:Wie Android Kontakt bekommen thumbnail
@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;
}
Aber wenn ich versuche, die Uri zu analysieren, die in thumbnailUri gespeichert ist, erhalte ich die folgender Fehler:
08-09 01:58:38.619: I/System.out(1471): resolveUri failed on bad bitmap uri: content://com.android.contacts/contacts/1/photo
Gehe ich das falsch herum? Jede Hilfe würde sehr geschätzt werden!
Können Sie eine logcat info setzen dort zu sehen, was die URI, die Sie versuchen, es hier zu lösen und posten? Log.i ("URI", thumbnailUri); – RyanInBinary
Inhalt: //com.android.contacts/contacts/1/photo, was ich für richtig halte. Vielleicht liegt es nur daran, dass ich einen Emulator verwende. Ich brauche ein echtes Gerät:/ –
Habe mir gerade ein richtiges Gerät besorgt. Das funktioniert, mein Code ist in Ordnung. –