我将android中TextView
的背景设置为饼图。我使用LayerDrawable
ArcShape
(s)来执行此操作并将其设置为背景。这是代码:
final ShapeDrawable arcGreen = new ShapeDrawable(new ArcShape(-90, correctAngle));
arcGreen.getPaint().setColor(ContextCompat.getColor(this, R.color.feedback_score_3));
final ShapeDrawable arcRed = new ShapeDrawable(new ArcShape(-90 + correctAngle, 360 - correctAngle));
arcRed.getPaint().setColor(ContextCompat.getColor(this, R.color.feedback_score_1));
final Drawable[] layer = {arcGreen, arcRed, mask};
final LayerDrawable ld = new LayerDrawable(layer);
mSvaraLayout.getChildAt(i).setBackground(ld);
现在,我想要做的是在correctAngle
的值发生变化时为此背景设置动画。我看到的一个选项是使用ValueAnimator
并从初始值转到新correctValue
,每次在onAnimationUpdate()
回调中我创建一个新的LayerDrawable
对象使用更改的值并将其设置为背景。其他方法可能是首先在背景中获取所有Drawables
(s ShapeDrawable(<ArcShape>)
对象,然后设置弧的角度。但我想没有办法这样做有没有其他方法可以达到这个目的?