Поскольку вы уже храните контакты в базе данных 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.
Это был бы лучший способ сделать это, чем сохранить путь к изображению, потому что пользователь может легко изменить путь, и тогда ваше приложение больше не сможет найти изображение.
Надеюсь, это поможет.