Android 如何绘制填充整个已更改视图的圆
我试图画一个圆圈来填充整个已更改的视图(对于任何设备)。 圆形将填充尽可能多的屏幕空间(不变形其圆形)。 旋转屏幕方向将调整时钟视图。 小圆圈扩展了视野Android 如何绘制填充整个已更改视图的圆,android,ondraw,Android,Ondraw,我试图画一个圆圈来填充整个已更改的视图(对于任何设备)。 圆形将填充尽可能多的屏幕空间(不变形其圆形)。 旋转屏幕方向将调整时钟视图。 小圆圈扩展了视野 { private int x = 0; private int y = 0; private final int rsec=240; private final int rmin=200; private final int rhrs=150; private Date date;
{
private int x = 0;
private int y = 0;
private final int rsec=240;
private final int rmin=200;
private final int rhrs=150;
private Date date;
int viewWidth = 0;
int viewHeight = 0;
int Radius = 0;
public Circles(Context context)
{
super(context);
}
public void onDraw(final Canvas canvas)
{
super.onDraw(canvas);
String msg = "width: " + viewWidth + "height: " + viewHeight;
System.out.println(msg);
x = viewWidth / 2 ;
y = viewHeight / 2 ;
//2 Circels
Paint p1 = new Paint();
p1.setColor(Color.BLUE);
p1.setStyle(Style.STROKE);
Paint p2 = new Paint();
p2.setColor(Color.RED);
p2.setStyle(Style.FILL);
canvas.drawCircle(x, y , Radius, p1);
canvas.drawCircle(x , y , 20, p2);
@Override
protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){
super.onSizeChanged(xNew, yNew, xOld, yOld);
viewWidth = xNew;
viewHeight = yNew;
/*
these viewWidth and viewHeight variables
are the global int variables
that were declared above
*/
this.setMeasuredDimension( viewWidth, viewHeight);
Radius=Math.min(viewWidth, viewHeight);
}
当手机垂直时,第一个圆圈根本不显示,但当手机水平旋转时,可以看到圆圈的边缘。
没人能告诉我我用的onSizeChanged有什么问题 移动这条线
this.setMeasuredDimension( viewWidth, viewHeight);
在这条线之后
Radius=Math.min(viewWidth, viewHeight);
看看这是否有效 或者尝试删除此.setMeasuredDimension(viewWidth、viewHeight)中的行;因为已经有onSizeChanged()方法。删除该行不会进行任何更改,