Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何绘制填充整个已更改视图的圆_Android_Ondraw - Fatal编程技术网

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()方法。删除该行不会进行任何更改,