Note that there are some explanatory texts on larger screens.

plurals
  1. POUsing the default contact picker photo in my app
    primarykey
    data
    text
    <p>In my app I have a ListView of contacts with basic information (name, phone number) as well as the contact image, very similar to the default Android contact picker. If the contact has no image, it displays the app icon in its place. However, I would like to use the default silhouette image that the contact picker uses instead. My question is how can I access this image and use it in my app? Here is the section of my code that loads the contact image:</p> <pre><code>Contact c = new Contact(); final String[] projection = new String[] { Contacts.DISPLAY_NAME, // the name of the contact Contacts.PHOTO_ID // the ID of the column in the data table for the image }; final Cursor contact = getContentResolver().query( Contacts.CONTENT_URI, projection, Contacts._ID + "=?", // filter entries on the basis of the contact id new String[] {String.valueOf(contactId)}, // the parameter which the contact id column is compared to null ); if(contact.moveToFirst()) { final String name = contact.getString( contact.getColumnIndex(Contacts.DISPLAY_NAME)); final String photoId = contact.getString( contact.getColumnIndex(Contacts.PHOTO_ID)); // Get photo data for this contact if(photoId != null) { final Cursor photo = managedQuery( Data.CONTENT_URI, new String[] {Photo.PHOTO}, // column for the photo blob Data._ID + "=?", // select row by id new String[] {photoId}, // filter by photoId null ); // Convert photo blob to a bitmap if(photo.moveToFirst()) { byte[] photoBlob = photo.getBlob( photo.getColumnIndex(Photo.PHOTO)); final Bitmap photoBitmap = BitmapFactory.decodeByteArray(photoBlob, 0, photoBlob.length); c.setPhoto(photoBitmap); } } c.setName(name); </code></pre> <p>Here is the code in my ContactAdapter class which associates the ImageView with the contacts photo:</p> <pre><code>ImageView photo = (ImageView) v.findViewById(R.id.contact_photo); if(photo != null) { if(c.hasPhoto()) photo.setImageBitmap(c.getPhoto()); else photo.setImageResource(R.drawable.app_icon); } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload