我正在尝试为我的图形设置动画,这意味着可以看到图形曲线被绘制。该图看起来像这样:
目前,我可以使用以下代码为图表设置动画:
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);
}
我对此有以下疑问:
有人可以帮忙吗?提前谢谢!
答案 0 :(得分:0)
每种颜色/线条样式都需要一个路径。如果您有多条路径(第二条路径从第一条路径的端点开始以进行平滑过渡),您可以为每条路径设置不同的颜色,因此设置不同的样式。