2012-06-24 65 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

是的。那就对了.. –