Техника для хранения иконок контактов Android - PullRequest
1 голос
/ 07 июня 2011

Мне интересно, как лучше всего хранить значок локального телефонного контакта.Я пишу менеджер, который позволит пользователю выбирать контакты для отображения в списке, который теперь требует отображения значка контакта.

Будет ли значок храниться в другом месте на выбранной работе, или я должен попробовать маршрутхранить расположение иконки и ссылаться на нее таким образом?Может ли кто-нибудь, кто прошел через это, указать мне правильное направление?Я использую базу данных Sqlite для хранения контактов.

Любой код / ​​ссылки будут очень полезны.

Ответы [ 2 ]

1 голос
/ 08 июня 2011

Во-первых, я бы порекомендовал посмотреть на источник Android и посмотреть, как они это делают.

Если не считать изображения небольшого размера, я настоятельно рекомендую создать правильный ContentProvider и сохранить изображения в виде двоичных объектов, прикрепленных к строке с использованием Cursor.getBlob().Смотрите http://developer.android.com/intl/de/guide/topics/providers/content-providers.html#querying для более подробной информации.

Для больших изображений, посмотрите на Как хранить большие капли в поставщике контента для Android?

1 голос
/ 07 июня 2011

Поскольку вы уже храните контакты в базе данных Sqlite, я бы просто добавил к этой базе данных еще одно поле, в котором будет храниться закодированное изображение.

Я решил решить аналогичную проблему: я использовал Base64 для кодирования изображения в строку, а затем сохраняю эту строку в любом месте ...

Я добавил одну функцию в класс Base64 для непосредственного кодирования объекта Bitmap для меня и возврата строки, вот код:

public static String encodeBitmap(Bitmap bmp) {
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
    byte[] buf = stream.toByteArray();
    return encodeBytes(buf);
}

где encodeBytes(buffer) уже является реализованной функцией класса Base64.

Это был бы лучший способ сделать это, чем сохранить путь к изображению, потому что пользователь может легко изменить путь, и тогда ваше приложение больше не сможет найти изображение.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...