2012-06-24 106 views
1

我正在使用單獨的處理程序從資源文件夾中動態更改ImageView中的圖像資源。但有時,圖像會最小化。什麼可能導致這個問題?看起來它正在重繪爲一個非常小的尺寸。什麼可能導致這個問題?Android:動態設置圖像時出錯

int drawableId = -1; 
private void loadImageViewWithImageString(ImageView imgView, String image) { 

    try { 
     Class<drawable> res = R.drawable.class; 
     Field field = res.getField(image); 
     drawableId = field.getInt(null); 
    } 
    catch (Exception e) { 
     Log.e("MyTag", "Failure to get drawable id.", e); 
    } 
    handler.post(new Runnable() { 

     @Override 
     public void run() { 
      if(drawableId != -1){ 
       //wDisplayImgView.setImageDrawable(getResources().getDrawable(drawableId)); 
       wDisplayImgView.setImageResource(drawableId); 

      }else{ 
       wDisplayImgView.setImageDrawable(getResources().getDrawable(R.drawable.default_weather_icon)); 

      } 
      wDisplayImgView.invalidate(); 
      subCoreLayout.invalidate(); 

     } 

    }); 

} 
+0

這是一個佈局問題。只是想通了。愚蠢的我..謝謝無論如何。 –

回答

0

invalidate()應在UI線程上調用。改爲使用postInvalidate()

+0

:)這是我的佈局問題。弄清楚了。無論如何,謝謝:) –

+0

無論如何,你應該使用'postInvalidate()'。 – nullpotent

+0

是的。那就對了.. –