1

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>)オブジェクトであり、次に円弧の角度を設定します。しかし、そうする方法はないと思います。これを達成する他の方法はありますか?

4

0 に答える 0