#android #image #bitmap #camera
#Android #изображение #растровое изображение #камера
Вопрос:
Я создаю простое приложение для Android, и из своего приложения я хочу взять изображение и сохранить его в альбоме. После того, как изображение сделано, я беру ‘requestCode’ в базе данных (saveImageId).
public void makePicture(){
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_ID);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_PIC_ID) {
Bitmap thumbnail = (Bitmap)data.getExtras().get("data");
Log.d("picture receive","foto ok?");
saveImageId = requestCode;
_ivPicture.setImageBitmap(thumbnail);
}
}
Когда я хочу показать изображение, я считываю код из базы данных. Я должен выполнить поиск изображения с помощью requestCode и показать его пользователю.
У кого-нибудь есть идеи, как я могу показать изображение в _ivPicture? С уважением
Ответ №1:
Нашел его, пришлось сохранить место изображения:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_PIC_ID) {
Log.d("picture receive","foto ok?" requestCode " amp; " resultCode);
Uri pictureTaken = data.getData();
Bitmap thumbnail = (Bitmap)data.getExtras().get("data");
saveImageId = pictureTaken.toString();
Log.d("saveImageId=","" saveImageId);
_ivPicture.setImageBitmap(thumbnail);
}
}
saveImageId отправляется в базу данных (в виде строки), после чего мне пришлось снова загрузить изображение с : Uri myUri = Uri.parse(saveImageId);
_ivPicture.setImageURI(myUri);
Ответ №2:
Я думаю, вам нужно исправить основную часть вашего кода выше.
if (requestCode == CAMERA_PIC_ID) {
Uri uri = data.getData();
Bitmap thumbnail = Media.getBitmap(getContentResolver(), uri);
_ivPicture.setImageBitmap(thumbnail);
}
Комментарии:
1. код, который я написал, работает, если я попробую ваш код, он выдает ошибку на носителе.getBitmap(getContentResolver(), uri);
2. тогда с какой проблемой вы столкнулись?
3. У меня есть поле ввода, в котором я могу указать заголовок и установить изображение. Это отлично работает и сохраняет заголовок и код запроса (не знаю, хорошо ли это). Теперь пользователь хочет изменить изображение для этого конкретного заголовка. Итак, я закладываю заголовок, и мне нужно открыть текстовое поле с заголовком и изображением, которое принадлежит заголовку. Редактирование заголовка работает хорошо, но изображение не открывается. Вопрос в том, как мне открыть конкретное фото. Надеюсь, я хорошо это объяснил.
4. Я не совсем понял. Кроме того, я не понимаю, какое отношение проблема, с которой вы столкнулись, имеет к коду, который вы указали в своем вопросе. Также сохранение requestCode не кажется полезным.
5. Нет, просто прочитайте что-нибудь, и код запроса окажется бесполезным. У меня нет никаких проблем с кодом, должно быть больше кода. Я делаю снимок, и его можно просмотреть в моем приложении. Я хочу сохранить ссылку или что-то, что ссылается на это изображение в моей базе данных. Например; я делаю снимок своего компьютера, у изображения есть имя, обычно номер, поэтому, допустим, у изображения есть название 1234.jpg . В базе данных хранится 1234. Поэтому, когда мне нужно снова открыть изображение (через некоторое время), моя программа может заглянуть в базу данных и спросить: «какое изображение я должен показать?» Банк данных возвращает 1234.