Wie man Android-Kontakt-Miniatur
Ich habe eine listview
- adapter, und ich werde versuchen, die folgenden in der newView
Methode:
@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 zum Parsen der Uri, der gespeichert ist im thumbnailUri, erhalte ich die folgende Fehlermeldung:
08-09 01:58:38.619: I/System.out(1471): resolveUri failed on bad bitmap uri: content://com.android.contacts/contacts/1/photo
Werde ich über dieses der falsche Weg ist? Jede Hilfe wäre sehr geschätzt werden!
- Kannst du mal ein logcat drin, um zu sehen, was die URI, die Sie versuchen zu beheben ist und es hier posten? Log.ich("URI", thumbnailUri);
- Inhalt://com.android.Kontakte/contacts/1/ - Foto, das ich glaube, ist richtig. Vielleicht ist es auch einfach, denn ich bin mit einem emulator. Ich brauche, um ein echtes Gerät :/
- Habe gerade mir einen richtigen Gerät. Das funktioniert, mein code ist in Ordnung.
InformationsquelleAutor Bradley Campbell | 2012-08-08
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist die Funktion, wo Sie brauchen, um passieren Kontakt-id, und Sie erhalten die URI des Bildes, die Sie können leicht in der Bildansicht.
verwenden Sie die response-uri, der diese Funktion wie Bildansicht.setImageURI(uri)
Hoffe, es wird für deinen code.
String stringUri = imageUri.getPath(); //works
String stringUri = imageUri.toString(); //does not work
i.setImageURI(Uri.parse(stringUri));
kann es für Sie arbeitet. da in meinem code-Funktion arbeitet korrekt.DISPLAY_PHOTO
statt. Siehe die offiziellen docs hier: developer.android.com/reference/android/provider/...