我正在尝试创建一个拍照的应用程序,并将其显示在ImageView上。
我成功了,但是当我尝试拍摄新照片时,ImagaView的图像没有刷新。
例如:我按下一个按钮,创建了一个Intent到相机。我将图片'A'保存在路径'fileUri'的 SD卡上的文件中。回到我的活动中,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(...);
但没有成功。
如果你有提示我将会更加满意。 谢谢,
答案 0 :(得分:1)
使用startActivityForResilt()为结果启动相机活动。然后覆盖onActivityResult()函数。这样当你的相机活动结束时,onActivityResult()函数就会被调用。在该功能中,您可以更改图像,而不是在onResume()中更改图像。检查onActivityResult()中的活动结果状态。