Androidの背景をTextView
円グラフとして設定しています。LayerDrawable
そのためにof (s) を使用し、ArcShape
それを背景として設定しました。そのためのコードは次のとおりです。
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
変化したときにこの背景をアニメーション化することです。私が目にするオプションの 1 つは、使用しValueAnimator
て初期値から新しい値に移動しcorrectValue
、コールバック内で毎回変更された値でonAnimationUpdate()
新しいLayerDrawable
オブジェクトを作成し、それを背景として設定することです。他の方法は、最初に背景のすべてを取得することでしたDrawables
(ShapeDrawable(<ArcShape>)
オブジェクトであり、次に円弧の角度を設定します。しかし、そうする方法はないと思います。これを達成する他の方法はありますか?