对于我正在开发的应用程序,我想绘制计步器的结果。计步器使用 aservice
来测量某人在后台所走的步数。我有一个名为 DrawView 的自定义视图,我想在其中绘制我的结果。service
每当测量一步时,我都会从我的 drawPoint 方法中调用。然后从我的 drawPoint 方法中,我尝试onDraw()
使用invalidate()
. 根据我的日志,正在调用 drawPoint 但onDraw()
不是。所以我的问题是:
为什么 onDraw() 没有被调用,我应该如何让 DrawView 调用它?
public class DrawView extends View {
...
@Override
public void onDraw(Canvas canvas) {
for (Point point : points) {
canvas.drawCircle(point.x, point.y, 5, paint);
Log.d("Checks", "onDraw is called");
}
}
public void drawPoint(int counter) {
Log.d("Checks", "Point coordinates: " + 40 + ", " + counter);
Point point = new Point();
point.y = 40;
point.x = counter;
points.add(point);
invalidate();
}
}