Открыть определенное изображение из альбома

#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.