我刚刚使用 Android进入基本绘图.我从一些简单的形状开始,但我遇到了一些问题.我想在画布的中心画一个圆圈.我看了几个例子,但似乎无法使它工作.我认为这是因为我真的不明白哪些变
有人可以解释一下在我的屏幕中心绘制圆圈的正确方法.这是我的代码:
public class Circle extends View{ int width = this.getWidth(); int height = this.getHeight(); public Circle(Context context) { super(context); setFocusable(true); } protected void onDraw(Canvas canvas){ canvas.drawColor(Color.CYAN); Paint paint = new Paint(); paint.setStyle(Paint.Style.FILL); //canvas.drawCircle(100, 100, 50, paint); canvas.drawCircle(width/2, height/2, 100, paint); Display disp = ((WindowManager)this.getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); float radius = 0;//Radius caused an error so I initialized this variable canvas.drawCircle(disp.getWidth()/2, disp.getHeight()/2, radius, paint); }
}
当调用getWidth()和getHeight()时,视图的宽度和高度尚未初始化,只需在onDraw中使用getWidth()和getHeight():canvas.drawCircle(getWidth()/2, getHeight()/2, 100, paint);
您还可以覆盖onSizeChanged并获取视图宽度和高度.
PS:不在onDraw中创建任何东西,在构造函数中创建paint对象.