Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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_Android Canvas_Android View - Fatal编程技术网

Android 画布,路径方向更改

Android 画布,路径方向更改,android,android-canvas,android-view,Android,Android Canvas,Android View,我使用此示例代码捕获信用卡签名-。我不知道如何在方向改变时缩放路径/画布。我使用View的onSizeChange回调: @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { //View given size super.onSizeChanged(w, h, oldw, oldh); Log.d("Signature Old Height", Stri

我使用此示例代码捕获信用卡签名-。我不知道如何在方向改变时缩放路径/画布。我使用View的onSizeChange回调:

  @Override
  protected void onSizeChanged(int w, int h, int oldw, int oldh) {
      //View given size
      super.onSizeChanged(w, h, oldw, oldh);

      Log.d("Signature Old Height", String.valueOf(oldh));
      Log.d("Signature Height", String.valueOf(h));
      Log.d("Signature Old Width", String.valueOf(oldw));
      Log.d("Signature Width", String.valueOf(w));

      if(mCanvas != null){
          Matrix scaleMatrix = new Matrix(); 

          scaleMatrix.setScale((float)oldw/(float)w, (float)oldh/(float)h);
          path.transform(scaleMatrix);
          mCanvas.drawPath(path, paint);
      }
  }

但我无法正常工作。

因为您正在调用mCanvas.drawPathpath,所以请绘制;在onDraw方法之外所以我应该在fragment或activity中的config change回调中调用signature view对象上的invalidate方法?onSizeChanged由系统调用,然后调用onDraw,这样您甚至不必调用invalidate