Как связать имя контакта, телефон и фотографию контакта в SimpleCursorAdapter? - PullRequest
2 голосов
/ 08 ноября 2010

Я могу получить имя контакта и телефон, но как получить фотографию контакта одним запросом?

    String[] PROJECTION = new String[] { Contacts.People._ID, Contacts.PeopleColumns.NAME, Contacts.Phones.NUMBER };
    Cursor c = a.managedQuery(Contacts.People.CONTENT_URI, PROJECTION, null, null, Contacts.People.DEFAULT_SORT_ORDER);

    return (new SimpleCursorAdapter(a, 
            R.layout.list_row, 
            c, 
            new String[] { Contacts.PeopleColumns.NAME, Contacts.Phones.NUMBER  }, 
            new int[] { R.id.toptext, R.id.bottomtext }));

1 Ответ

1 голос
/ 04 января 2011

Я в одной лодке (и для android-3 через android-5 для загрузки)!

Я не вижу столбец для фотографии в 1.x или 2.x, поэтому я почти смирился с использованием CursorAdapter с импровизированным держателем просмотра (частный класс, назначенный для тега anon view), а затем при необходимости используйте loadContactPhoto в bindView .

Трюк, по-видимому, заключается в том, чтобы избежать чрезмерного / избыточного масштабирования (например, кэшировать результаты Bitmap.createScaledBitmap для каждой фотографии, как минимум?), Чтобы представление не замедлялось снова, и вы во-первых, потеря преимуществ наличия списка, управляемого курсором.

Я знаю, становится грязно. Я уверен, что должен быть лучший способ ! Ну, я надеюсь, что есть. :)

...