我正在开发一个Android应用程序,我应该画一条从A点到B点的线,但我想表明这条线正在绘制"逐步"从一点到另一点。我该怎么办?
非常感谢!
答案 0 :(得分:1)
作为示例,您可以使用Thread
逐步增加行的大小,增加其结尾x
位置,然后从您的主题中调用View.postInvalidate()
。
这样,如果x
是您的行的结尾,而view
View
绘制一行以x
结尾,则您将拥有此主题:
class LineThread extends Thread {
public void run() {
while (x < some_limit) {
x += some_value;
view.postInvalidate();
try {
sleep(some_time);
}
catch(InterruptedException e) {
log.e(getClass.getName(), "sleep() was interrupted", e);
}
}
}
}
和您的view
:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawLine(left, top, right + x, bottom, paint);
}
让LineThread
成为View
课程的子类会让他们轻松分享x
。
答案 1 :(得分:0)
你可以看一下linear interpolation,但我不确定这是否太费时间 - 如果你一次只做几行就应该没问题!
由于您拥有start_point
和end_point
,因此您可以搜索每个时间范围的current_point
,然后在drawLine
和start_point
之间使用current_point
{1}}。