使用canvas的Android图形动画

使用canvas的Android图形动画,android,animation,canvas,graph,colors,Android,Animation,Canvas,Graph,Colors,我正在尝试为我的图形设置动画,这意味着可以看到绘制的图形曲线。该图如下所示: 目前,我可以使用以下代码为图形设置动画: public void startAnimation() { // Measure the path PathMeasure measure = new PathMeasure(mAnimationPath, false); length = measure.getLength(); O

我正在尝试为我的图形设置动画,这意味着可以看到绘制的图形曲线。该图如下所示:

目前,我可以使用以下代码为图形设置动画:

        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);
}
我对此有以下疑问:

  • 我无法为曲线的各个部分设置颜色,例如,曲线的最顶部为黄色,第二部分为绿色等。 我尝试过设置颜色,但整个图形都选择了最后一组颜色,并且只使用最后一组颜色绘制,例如,在我的示例中为蓝色
  • 我无法设置图表中的虚线样式

  • 有人能帮忙吗。提前谢谢

    每个颜色/线条样式都需要一个路径。如果有多条路径(第二条路径从第一条路径的端点开始,以进行平滑过渡),则可以为每条路径设置不同的绘制,从而为每条路径设置不同的样式。

    这意味着,路径和绘制的数组列表?在onDraw()中,我需要运行一个循环来获得路径并绘制颜色?那会有帮助的。请建议。是的-这将是一个解决方案此解决方案不起作用。。图形仍在使用上次设置的颜色绘制。是否将正确的绘制作为参数传递<代码>绘图路径(路径,绘制)是。我已经为path和paint创建了一个单独的类。我正在将此类的对象添加到arraylist中。在onDraw()方法中,我遍历数组列表并绘制图形。但它不起作用(