Java 我如何在安卓系统中放慢速度?
我的意思是我想慢慢地抽绳。 我写这段代码是为了用ondraw方法画线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像素,直到达到整
.
.
.
.
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);
}