Java 我如何在安卓系统中放慢速度?

Java 我如何在安卓系统中放慢速度?,java,android,ondraw,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); . . . 我是怎么慢慢做到的 在每个onDraw方法调用中,根据所需的速度递增地绘制一部分线。例如,如果希望绘制速度较慢,请在每次调用时将大小增加5像素,直到达到整

我的意思是我想慢慢地抽绳。 我写这段代码是为了用ondraw方法画线

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

我是怎么慢慢做到的

在每个
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;
    }
}

在后台线程中,在您的视图上安排一个
无效

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

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

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

-再次处理onDraw()中的新坐标

例如:

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
内缓慢操作,你将看不到任何东西(除了ANR弹出窗口),因为屏幕只有在
onDraw
返回后才会更新。你能尝试更小的增量吗?比如说1个像素或更少(使用浮点值)?我尝试(01000,++)绘制线(…);但它马上就画出来了。试试这个。当我触摸屏幕时,它会画一点。当再次触摸屏幕时,它会画一点。我不想要这个。我想要举个例子:当我触摸屏幕或按下按钮时,我想看到慢慢画线,而ı想看到这个。谢谢当你用线的时候。睡觉吧,不要画画。İ等待它结束,它会立即在循环结束时绘制。别忘了使画布失效,并一遍又一遍地绘制!这就像:“循环,绘制,新坐标,无效,睡眠…再次循环,再次绘制,新坐标,再次无效,再次睡眠…”你能给一些代码示例吗?我真的不明白:(.怎么做?)谢谢回答,但我没有视图v我有扩展视图的game2类。game2.无效不工作我写这个。无效();它能工作,但不会再慢下来
 protected void onDraw(Canvas canvas)
        {
        //draw your line here using your X and Y member
                canvas.drawLine(x1, y1, x2, y2, caneta);
        }