我想讓一個應用程序拍攝一張照片並將其顯示在ImageView上。我的ImageView不刷新
我成功做到了這一點,但是當我嘗試拍攝新照片時,ImagaView的圖像沒有刷新。
例如:我按了一個按鈕,就創建了一個相機的意圖。我把圖片'A'保存在SD卡上的文件上,路徑爲'fileUri'。回到我的活動mImageView1顯示圖片'A'。很好,它有效。
我嘗試採取新的圖片「B」,我稱之爲意向的圖片保存在同一adress.The畫面corectly保存,但是當我在我的活動返回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(...);
沒有更迭。
如果您有提示,我會很滿意。 謝謝
我不知道這是你唯一的問題,但是'postInvalidate()'用於當你不在'UI'線程中。如果你在'UI'線程中,使用'invalidate()',你看起來像是 – codeMagic
你在哪裏將文件路徑更改爲新圖片?你可能想使用'startActivityForResult()'然後返回值並在'onActivityResult()'中設置圖像' – codeMagic
我叫'invalidate()'沒有成功。我已經在'onActivityResult()'中設置了圖像。我檢查了路徑,它是一樣的。我看了一下這幅畫。 SD卡上的圖片發生了變化,這是新圖片,只是在ImageView中是舊圖片。 –