3

我不得不再问一次,因为之前没有人回答我的问题(我的问题不是重复如何在带有动画的 Android 画布上绘制路径?)。请仔细阅读并帮助我,如果可能的话,提供代码。上面的例子对我来说不清楚,路径是在绘图流程上创建的。这不是我要找的……

我想通过绘制具有时间间隔的点来绘制我的 View 类中已经存在的 ONE Path 来模拟动画。我应该如何修改我的 onDraw 类来归档它?

public void onDraw(Canvas canvas) { 

paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(6);
paint.setColor(Color.parseColor("#10BCC9"));
if(path != null && !path.isEmpty())
    canvas.drawPath(path, paint);

}

我认为这是一个简单的问题,我不相信没有简单的答案......请帮助......

4

1 回答 1

3

我发现没有Path用时间间隔绘制 a 的解决方案。我的解决方案是这个,我重置我的路径路径并从点数组再次创建它。i 和 j 是全局变量:

public void onDraw(Canvas canvas) { 

    if (i < strokes.length && j < strokes[i].length)
    {
        if (i == 0 && j == 0)
        {
            path.reset();
            path.moveTo(strokes[0][0].x, strokes[0][0].y);
        }
        if(j == 0)
            strokePaint.setColor(Color.RED);
        else
            strokePaint.setColor(Color.parseColor("#10BCC9"));
        path.lineTo(strokes[i][j].x, strokes[i][j].y);
        canvas.drawPath(path, strokePaint);
        for(int k = 0; i < textCords.size() && k <= i ; k++)
            canvas.drawText(String.valueOf(k+1), textCords.get(k).x, textCords.get(k).y, textPaint);
        if (j == strokes[i].length-1)
        {
            i++;
            j = 0;
            if (i < strokes.length)
            path.moveTo(strokes[i][0].x, strokes[i][0].y);
        }
        else
            j++;
        if (i < strokes.length)
        {
            postInvalidateDelayed(5);
        }
        else
        {
            i = 0;
            j = 0;
            animation = false;
        }
    }
}

我希望它会帮助某人...

于 2013-05-28T07:48:01.327 回答