好的,我要在这里发疯了。当你尝试了所有东西时,深夜的东西......
我有一个复合 TextView,左边有一个图像。图像(仅显示“正在加载”的小图片)设置为:
Drawable img = getBaseContext().getResources().getDrawable( R.drawable.loading );
img.setBounds( 0, 0, 120, 120 );
tv.setCompoundDrawables( img, null, null, null );
tv 是 TextView 变量。这很好用。但是,稍后我想用新的drawable替换图像,我尝试再次调用 setCompoundDrawables :
tv.setCompoundDrawables( new_img, null, null, null );
我还尝试获取 TextView 的可绘制数组并替换左侧的数组,如下所示:
Drawable[] drw = tv.getCompoundDrawables();
drw[0] = new_img;
代码在调试模式下运行正常。没有异常发生。在 UI 线程中执行的所有 UI 处理。图像似乎还可以,等等,但显示没有改变。我是否必须以某种方式刷新显示?
顺便说一句,如果这很重要,TextView 会添加到垂直 LinearLayout 中。我很确定我在这里遗漏了一些明显的东西,但我看不到它。提前谢谢了。
(是的,我知道我可以用 ImageView 和 vanilla TextView 替换我的设计,但是出于性能原因,如果可能的话,我宁愿坚持使用 Compound TextView)