我想在画布上画圆圈。我使用函数来执行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“调用时,它只工作一次。
附注:油漆,宽度,高度,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();
}发布于 2013-07-31 16:11:22
每当视图需要重新绘制自身时,都会调用onDraw()。这可能是由于许多原因,如布局改变,滚动等。
您也可以调用视图上的invalidate()来重新绘制。
如果你想以很高的速度画画,比如触摸绘画或游戏等等,考虑使用TextureView代替。
发布于 2013-07-31 15:13:48
我是这样做的。
1)定义自定义视图。
2)在其onDraw方法上,进行创建/显示循环。
3)在定制视图的onDraw方法的最后一行中调用失效()方法。
如果能用,请告诉我。
https://stackoverflow.com/questions/17974074
复制相似问题