Как выбрать изображение из внутреннего хранилища и вставить его в SQLite?
Когда пользователь нажимает кнопку в моем приложении, он должен иметь возможность выбрать изображение из внутренней памяти (sd-карты или памяти планшета/телефона). Затем я хочу, чтобы этот образ был сохранен в базе данных SQLite.
Итак, есть три вопроса:
- Как я могу показать пользователю галерею или проводник, чтобы он мог перемещаться и выбирать изображение?
- как приложение узнает, какое изображение было выбрано?
- как мое приложение может хранить изображение в базе данных (BLOB-данные)?
1 ответ:
Хорошо, как уже отметил Лингвистон. Вы можете реализовать выбор изображения из галереи из здесь.
Что касается хранения изображения, я собираюсь немного отредактировать код в ссылке.
Вместо этого:
ImageView imageView = (ImageView) findViewById(R.id.imgView); imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
Я собираюсь сохранить выбранное изображение в
Bitmap
.ImageView imageView = (ImageView) findViewById(R.id.imgView); Bitmap mBitmap = BitmapFactory.decodeFile(picturePath); imageView.setImageBitmap(mBitmap);
Теперь для хранения в качестве типа
BLOB
в android вам нужно преобразовать растровое изображение в байты, а затем сохранить массив байтов в sqlite база данных.Теперь вам просто нужно передатьByteArrayOutputStream stream = new ByteArrayOutputStream(); mBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] imageInByte = stream.toByteArray();
imageInByte
для хранения в базе данныхSQLite
.В качестве примечания, оба эти ответа уже были доступны по всему интернету и
StackOverflow
по отдельности, вам просто нужно было сложить 2 и 2 вместе. Пожалуйста, попробуйте тщательно поискать, прежде чем отправлять вопрос.