Обмен изображения в ImageView

Я пытался реализовать простую (я думаю) вещь в моем приложении. Я думал, что это будет просто, но почему-то это не работает так, как я хотел бы.

То, что я пытаюсь сделать, это:

  • В центре есть действие с ImageView - у него есть собственное изображение (ну, их два).
  • Я хочу нажать на этот ImageView (или это может быть ImageButton), открыть галерею / сделать снимок с камеры.
  • Затем, после съемки / съемки изображения, я хочу, чтобы ImageView отображал миниатюру изображения.

Мой макет

                <ImageView
                    android:id="@+id/add_photo_left"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="20dp"
                    android:layout_weight="1"
                    android:adjustViewBounds="true"
                    android:src="@drawable/add_photo_button" />

                <ImageView
                    android:id="@+id/add_photo_right"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:adjustViewBounds="true"
                    android:src="@drawable/add_photo_button" />
            </LinearLayout>

Мой код - после получения пути к картинке

        BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
        bmpFactoryOptions.inSampleSize = 8;
        Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/5.png",bmpFactoryOptions);
        lastClicked.setImageBitmap(bitmap);
        //lastClicked.setImageResource(R.drawable.green_circle);

Я хотел прочитать файл с измененным размером (используя inSampleSize) из sdcard, а затем заполнить им ImageView (или ImageButton). Но после использования функции setImageBitmap вид исчезает - как будто он загружает пустое изображение (закомментированная строка работает правильно - это просто зеленая точка).

Может, кто-то подошел к подобной проблеме? Я был бы очень признателен за любую помощь.

Привет, Scana

РЕДАКТИРОВАТЬ: ofc lastClicked:

lastClicked = (ImageView)findViewById(R.id.add_photo_left);

1 ответ

Решение

Почему бы тебе не попробовать lastClicked.invalidate()?

Я делаю так в моем коде по крайней мере, и это работает таким образом;)

Другие вопросы по тегам