Попытка репликации домашнего экрана Android.
Хорошо, я пытаюсь скопировать ярлыки, которые помещаются на домашний экран при создании ярлыка контакта, показанный пример:
У меня есть рабочий QuickContactBadge, который при нажатии показывает панель инструментов QuickContact. Однако у меня есть две проблемы, с которыми я сталкиваюсь.
Одним из них является картина. Я попытался использовать код из этого вопроса (я изменил его, добавив параметр для передачи идентификатора контакта). Затем я назначаю изображение моему QuickContactBadge следующим образом:
bdg.setImageURI(getPhotoUri(cid));
Он определенно получает фотографии, но получает совершенно неправильную картину. Как показано здесь:
Как видите, изображение, которое оно вернуло для Domino, явно НЕ является логотипом Domino.
Я получаю свой контактный идентификатор для передачи функции из этого кода:
public static String[] ContactsProjection = new String[] {
Contacts._ID,
Contacts.LOOKUP_KEY,
Contacts.DISPLAY_NAME
};
public static Cursor getContacts() {
ContentResolver cr = CoreLib.ContentResolver();
Cursor contacts = cr.query(
ContactsContract.Data.CONTENT_URI,
ContactsProjection,
null, null,
Contacts.TIMES_CONTACTED + " DESC"
);
return contacts;
}
Что, я считаю, должно возвращать мне правильное удостоверение личности для каждой записи. Да?
Далее, как мне получить уменьшенное изображение или обрезать его, как показывает ярлык?
Я был немного разочарован, увидев, что QuickContactBadge на самом деле не копирует весь внешний вид ярлыка QuickContact, а просто действует как цель вызова для карточки QuickContact. Существует ли какой-либо встроенный способ, позволяющий легко воспроизвести ярлык контакта во всей его полноте, вызове, изображении, тексте и т. Д., Без необходимости воспроизводить все это с нуля?
1 ответ
Ах, ха! Разобрался, как получить правильное фото. Хотя это кажется нелогичным, при построении полевой проекции для запроса контактов поля Contacts._ID
а также ContactsContract.Data.CONTACT_ID
это не одно и то же.
ContactsContract.Data.CONTACT_ID
правильный, чтобы пройти, чтобы получить фотографию. Используйте это, и все теперь золотое.