0

我正在尝试制作一个拍摄照片并将其显示在 ImageView 上的应用程序。

我成功地做到了这一点,但是当我尝试制作新图片时,来自 ImagaView 的图像没有刷新。

例如:我按下一个按钮,一个相机的意图被创建。我拍摄了保存在 SD 卡上路径'fileUri'的文件中的图片“A ” 。回到我的活动 mImageView1 显示图片 'A'。很好。它有效。

我尝试拍摄一张新照片 'B',我调用 Intent 将图片保存在同一个地址。图片已正确保存,但是当我在我的活动中返回时 mImageView1 显示旧图片 'A'。以下是更改 ImageView 图像的代码:

@Override
public void onPause(){
    super.onPause();
    ((BitmapDrawable) mImageView1.getDrawable()).setCallback(null);
}

@Override
public void onResume(){
    super.onResume();
    try{
        if(bImageSaved)
        {
            mImageView1.setImageURI(fileUri);
            mImageView1.postInvalidate();

        }
    }
    catch(Exception e)
    {
        e.printStackTrace();
         Log.e("Image2Notes",  e.getMessage(), e);
    }

我尝试了不同的方法来刷新 ImageView:mImageView1.postInvalidate(); mImageView1.draw(...);没有成功。

如果你有提示,我会很高兴。谢谢,

4

1 回答 1

1

使用 startActivityForResilt() 启动相机活动以获得结果。然后重写函数onActivityResult()。这样当您的相机活动完成时 onActivityResult () 函数将被调用。除了在 onResume () 中更改之外,您还可以在该函数中更改图像。在 onActivityResult() 中查看活动结果状态。

于 2013-05-17T19:35:20.173 回答