您的位置:首页 > 移动开发 > Android开发

setCompoundDrawables不显示图片

2017-08-03 20:26 543 查看
BUG #28475
海外版登陆界面缺少Hi图标中代码不起作用的问题


 

 

 

dynamicAddView会调用BaseActivity的dynamicAddSkinEnableView,

然后调用AttrFactory.get,通过if else判断

 mSkinAttr = new DrawableLeftAttr();

 

 

 

 

看代码知道最终调用setCompoundDrawables。通过debug发现已进入equas方法,

但最终并未成功加载图片到textView的左侧。

然后去看setCompoundDrawables源码,发现有这么一句注释。

 

Sets the Drawables (if any) to appear to the left of, above, to the
* right of, and below the text. Use {@code
null} if you do not want a
* Drawable there. The Drawables must already have had
* {@link
Drawable#setBounds} called.
 

 

skin.lib不能修改源码,只能写demo来验证是不是这个原因造成的。

 

 

布局这样子,能正常显示,运行起来也没有问题。

然后代码里修改,通过setCompoundDrawables在Textview左侧加图片,运行发现不能正常显示。

   调用drawable.setBounds
后能够正常显示。


 

 

 

2、直接调用setCompoundDrawablesWithIntrinsicBounds方法,不用setBounds也能正常显示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android bug