Разработчик приложения для Android: пытается сохранить изображение для сохранения в SQLite

Я предлагаю использовать объекты DateTime и DateInterval.

$date1 = new DateTime("2007-03-24");
$date2 = new DateTime("2009-06-26");
$interval = $date1->diff($date2);
echo "difference " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days "; 

// shows the total amount of days (not divided into years, months and days like above)
echo "difference " . $interval->days . " days ";

подробнее php DateTime :: diff manual

Из руководства:

Начиная с PHP 5.2.2, объекты DateTime можно сравнить с помощью операторов сравнения.

$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");

var_dump($date1 == $date2); // bool(false)
var_dump($date1 < $date2);  // bool(true)
var_dump($date1 > $date2);  // bool(false)

0
задан VikaS 23 March 2019 в 17:40
поделиться

1 ответ

Я считаю, что вам нужно передать URI места хранения (файла) через намерение takePictureIntent , используя

takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, your_image_Uri);

Затем вы можете открыть файл и извлечь его в байт [] и хранить его как блоб. Удобство SQLiteDatase, метод insert делает это очень простым.

например. если предположить, что byte [] имеет имя my_picture, то

ContentValues cv = new ContentValues();
cv.put(column_name_for_picture,my_picture);
long id = insert("the_table_name",null,cv);

Вы извлекаете сохраненную картинку из БД, используя метод запроса SQLiteDatabase , а затем извлекаете байт []. используя метод курсора getBlob .

Однако

Если размер изображения составляет 2 МБ или больше, вы не сможете получить его , так как для CursorWindow существует ограничение 2 МБ (1 МБ для более старых версий Android) ). Я бы предположил, что даже на 1 МБ у вас могут возникнуть проблемы с извлечением изображений.

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

Возможно, вы захотите взглянуть на Как использовать изображения в Android SQLite, которые больше, чем ограничения CursorWindow? , поскольку это показывает обходной путь , хотя НЕ рекомендуется . [+1112]

0
ответ дан MikeT 23 March 2019 в 17:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: