1

我正在使用单独的处理程序从资源文件夹动态更改 ImageView 中的图像资源。但有时,图像会最小化。什么可能导致这个问题?看起来它正在被重新绘制到一个非常小的尺寸。什么可能导致这个问题?

    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();

        }

    });

}
4

1 回答 1

0

invalidate()应该在 UI 线程上调用。尝试使用postInvalidate()

于 2012-06-24T14:37:16.163 回答