在ImageView中交换图像

时间:2012-05-15 19:52:28

标签: android image

我一直在尝试在我的应用中实现简单(我认为)的事情。我认为这很简单,但不知怎的,它不能像我想要的那样工作。

我要做的是:

  • 在Image Center中有一个活动 - 它有自己的图像(好吧,有两个)。
  • 我想按下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);

我想要做的是从sdcard读取调整大小的文件(使用inSampleSize),然后用它填充ImageView(或ImageButton)。 但在使用setImageBitmap函数后,视图消失了 - 就像它刚刚加载空图像一样(注释行正常工作 - 它只是绿点)。

也许有人接近过类似的问题?我非常感谢任何帮助。

格尔茨, SCANA

编辑: ofc lastClicked:

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

1 个答案:

答案 0 :(得分:4)

为什么不试试lastClicked.invalidate()

我至少在我的代码中这样做,并且它以这种方式工作;)