0

我想在画布上画圆圈。我使用函数来做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”调用时。

ps 油漆,宽度,高度,c - 公共变量。

升级版:

 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();
    }
4

2 回答 2

0

onDraw()每当视图需要重新绘制自身时都会被调用。这可能是由于许多原因造成的,例如布局更改、滚动等。

您还可以调用invalidate()View 以重新绘制。

如果您要以非常高的速度进行绘制,例如触摸绘画或某些游戏等,请考虑使用 aTextureView代替。

于 2013-07-31T16:11:22.667 回答
0

我做了如下。

1)定义自定义视图。

2)在其 onDraw 方法上,执行此创建/显示圆圈。

3) 在自定义View的onDraw方法最后一行调用invalidate()方法。

让我知道它是否有效

于 2013-07-31T15:13:48.187 回答