在自定义视图的onDraw中创建SweepGradient

时间:2016-11-21 09:55:51

标签: android android-custom-view ondraw

背景

对于我的应用,我创建了一个显示百分比的自定义视图,介于0%和300%之间,显示用户与平均值相比有多好,较低的百分比是更好的分数。自定义视图是一个简单的圆圈,带有SweepGradient,颜色从绿色到黄色(前100%),从黄色到橙色(第二个100%)或橙色到红色(第三个100) %)。

问题

渐变的中心应位于自定义视图的中心,因此x将位于canvas.getWidth/2。但是,我只能在视图的onDraw方法中访问画布。由于SweepGradient是不可变的,我必须使用onDraw方法中的位置(和颜色)创建它。在每个onDraw上创建一个新的渐变效率不高或不推荐,因为不应在onDraw中构建新对象。

问题

如何在视图中心有效设置这样的渐变,而不是在onDraw上创建?

额外问题: 为什么SweepRelease不可变?

0 个答案:

没有答案