我怎么能慢慢磨掉android中的线?

时间:2012-05-03 08:10:26

标签: java android ondraw

我的意思是我想画画但是很慢。 我写这段代码在ondraw方法中画线。

.
.
.
.
caneta.setARGB(255, 255, 0,0);caneta.setStrokeWidth(10); 
canvas.drawLine(0, ys * 1/2, this.getWidth(), ys * 1/2, caneta);
.
.
.

我是怎么慢慢做的?

2 个答案:

答案 0 :(得分:1)

这几乎就像游戏循环一样:

- 使画布无效X毫秒(使用循环和Thread.sleep())

- 每次循环后增加你的X / Y坐标

再次处理onDraw()中的新coords

示例:

private int x1, x2;
    private int y1, y2;
    private View v;

    public void start()
    {
        for (int i = 0; i <= 250; i++)
        {
             v.invalidate();

             x2 += 1;

            try
            {
                Thread.sleep(50);
            }
            catch (InterruptedException e)
            {
            }
        }
    }

在现有的视图类中,您已经拥有onDraw方法

 protected void onDraw(Canvas canvas)
        {
        //draw your line here using your X and Y member
                canvas.drawLine(x1, y1, x2, y2, caneta);
        }

答案 1 :(得分:0)

在每个onDraw方法调用中,根据所需的速度逐步绘制一部分行。例如,如果您想要慢速绘制,请在每次调用中将大小增加5个像素,直到达到整行。

private float linePercent = 0;
protected void onDraw (Canvas canvas){

    float lineX = this.getWidth() * linePercent;
    canvas.drawLine(0, ys * 1/2, lineX, ys * 1/2, caneta);
    linePercent += 0.05f;
    if(linePercent >= 1){
        linePercent = 0;
    }
}

在后台主题中,在您的视图上安排invalidate