android 自定义控件,关于getDrawable()的坑

背景:

最近需要开发一套播放器UI插件,采用自定义属性的方式来实现切换主题色和控件样式的功能,其中就涉及到seekbar和progressbar切换样式的部分,通过自定义属性注入了几个drawable之后,代码设置这些资源到seekbar到背景色,进度色,滑块上之后,发生了滑块与进度条错位的问题;设置到progressbar上面之后发生了进度无法更新到问题。

度娘之后:

关于seekbar的问题都是说要在drawable文件里面添加标签,使drawable可裁切。然而我的drawable文件都是设置好的。之后就摸不到头脑了。

解决:

最终发现,TypeArray的getDrawable()方法和Resource的getDrawable()方法获取的drawable对象不同,使用Resource获取的没有任何问题,所以要使用TypeArray得到resourceId,然后再用Resource获取drawable对象。

你可能感兴趣的:(android 自定义控件,关于getDrawable()的坑)