我想在画布上绘制圆圈。我用函数来做id:
public static void add()
{
float a = 20 + (new Random()).nextInt(width-40);
float b = 20 + (new Random()).nextInt(height-40);
paint.setColor(Color.rgb(13, 13, 13));
c.drawCircle(a, b, r, paint);
paint.setColor(Color.rgb(119, 119, 119));
c.drawCircle(a, b, r-3, paint);
}
当它从“onDraw”调用时,它只能工作一次。
P.S。 油漆,宽度,高度,c - 公共变量。
UPD:
protected void onDraw(Canvas canv)
{
super.onDraw(canv);
c = canv;
paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setAntiAlias(true);
paint.setColor(Color.WHITE);
c.drawPaint(paint);
add();
}
答案 0 :(得分:0)
我这样做了。
1)定义自定义视图。
2)在onDraw方法上,执行此操作创建/显示圆圈。
3)在自定义View的onDraw方法的最后一行调用invalidate()方法。
让我知道它是否有效
答案 1 :(得分:0)
onDraw()
。这可能是由于许多原因造成的,例如布局更改,滚动等。
您还可以在视图上调用invalidate()
以重新绘制。
如果您要以非常高的速度绘画,例如触摸绘画或某些游戏等,请考虑使用TextureView
代替。