Я динамически меняю ресурс изображения в 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();
}
});
}
invalidate()
следует вызывать в потоке пользовательского интерфейса. Попробуйте вместо postInvalidate()
.
postInvalidate()
.