2
グラフをアニメーション化しようとしています。つまり、グラフの曲線が描画されていることがわかります。キャンバスを使用したAndroidグラフのアニメーション
現在、私はコードの下に使用してグラフをアニメーション化することができる午前:
public void startAnimation() {
// Measure the path
PathMeasure measure = new PathMeasure(mAnimationPath, false);
length = measure.getLength();
ObjectAnimator animator = ObjectAnimator.ofFloat(EmotionsGraphView.this, "phase", 1.0f, 0.0f);
animator.setDuration(1000);
animator.start();
}
}
//is called by animtor object
public void setPhase(float phase) {
Log.d("pathview", "setPhase called with:" + String.valueOf(phase));
mAnimationPaint.setPathEffect(createPathEffect(length, phase, 0.0f));
mAnimationPaint.setColor(Color.RED);
invalidate();//will calll onDraw
}
private static PathEffect createPathEffect(float pathLength, float phase, float offset) {
return new DashPathEffect(new float[]{pathLength, pathLength},
Math.max(phase * pathLength, offset));
}
そして、私のonDrawメソッド内:
@Override
protected void onDraw(Canvas canvas) {
canvas.drawPath(mAnimationPath, mAnimationPaint);
}
私グラフは次のようになりますこれに関する以下の質問があります:
- カーブの個々の部分に色を設定できません。曲線の最上部の黄色、2番目の部分の緑など 色を設定しようとしましたが、グラフ全体が最後に設定された色を選択していて、最後に設定された色のみで描画されています。私の場合は青。
- グラフに点線のスタイルを設定できません。
誰かがこれを助けることができますか?前もって感謝します!
つまり、パスとペイントの配列リストですか? _onDraw()_内部では、_path_と_paint_color_を取得するためにループを実行する必要がありますか?それは助けになるだろうか?提案してください。 – SKP
これは解決策になります – Katharina
この解決策は機能しません。グラフはまだ最後に設定された色で描画されています。 – SKP