在自定义视图中处理变量 Drawable 的正确方法?

问题描述

我有一个自定义视图,用于呈现形状和一些 Drawable(由 XML 指定的星形图像)。它会根据等级对星星进行几次渲染,无论是小/暗还是大和黄色。

这个自定义view可以多次出现在Recycler中,因此也可以重复使用。

无论如何,我似乎无法让它正常工作,而且我理解这与以这种方式使用的 Drawable 只是对单个对象的引用有关,因此将边界/颜色修改一个place 会在它被渲染的任何地方修改它。

基本上我的问题是,就最佳实践和内存使用而言,在自定义 View 类中采用 XML 定义的 Drawable 的正确方法是什么,然后渲染和修改该 Drawable在它的 draw() 函数中有几次?

现在我正在这样做,因为我发现 mutate() 调用似乎为您提供了 Drawable 的新副本(在某种程度上)。

OnStart

它似乎在模拟器上运行良好。在我的一台设备上,虽然它给出了奇怪的结果,其中一些自定义视图根本不显示“填充”的星星,或者如果所有 5 颗星都应该填充,则只显示“填充”的星星 - 诸如此类的奇怪事情。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)