【问题标题】:Draw a Path as animation on canvas在画布上绘制路径作为动画
【发布时间】:2013-05-18 04:58:24
【问题描述】:

我必须再问一次,因为之前没有人回答我的问题(我的问题不是 How to draw a path on an Android canvas with animation? 的重复)。请仔细阅读并帮助我,如果可能的话,提供代码。上面的例子对我来说不清楚,路径是在绘图流程上创建的。这不是我要找的……

我想绘制一个路径,它已经存在于我的视图类中,通过绘制具有时间间隔的点来模拟动画。我应该如何修改我的 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);

}

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

【问题讨论】:

  • 我有一个例子,它以一定的时间间隔画线。这就是你要找的吗??
  • 我认为您的示例与链接中的示例相似。最好看看如何绘制整个路径......我不敢相信它是如此困难。如果您认为它可以帮助我,请发布它
  • 示例我画了一条线,然后等待 5 秒画第二条线,依此类推。寻找类似的东西??
  • 请张贴(但尽可能简单)。我会看看它。或者,如果您理解它,您可以修改它以绘制路径并等待例如 50 毫秒来绘制路径中的每个点?
  • 它在 5 秒后绘制路径。但是我不确定如何在 5 秒后画点。如果你愿意,我可以发布相同的

标签: java android multithreading path draw


【解决方案1】:

我发现没有用时间间隔绘制Path的解决方案。我的解决方案是这个,我重置我的路径路径并从点数组再次创建它。 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;
        }
    }
}

希望对大家有所帮助...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-12
    • 2021-06-25
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    相关资源
    最近更新 更多