【问题标题】:canvas drawpath not accurate画布绘制路径不准确
【发布时间】:2015-09-23 12:06:55
【问题描述】:

正如您所见,当我在我的应用程序中使用canvas.drawpath() 时,我没有得到一个用户想要的结果。

看看我的手指在哪里,它在哪里画!

    //Bitmap is the picture
    imageview.setImageBitmap(bitmap);
    Canvas canvas = new Canvas(bitmap);
    Paint paint = new Paint();
    paint.setColor(Color.Black);
    paint.setStrokeWidth(50);
    paint.setStyle(Paint.Style.STROKE);
    path = new Path();
    imageview.setOnTouchListener(this);

这里是 onTouchListener

public boolean onTouch(View v, MotionEvent event) {
            int action = event.getAction();
            switch (action) {
            case MotionEvent.ACTION_DOWN:
                path.moveTo(event.getX(), event.getY());
                path.lineTo(event.getX(), event.getY());
                canvas.drawPath(path, paint);
                imageview.invalidate();
                break;
            case MotionEvent.ACTION_MOVE:
                  path.lineTo(event.getX(), event.getY());
                  canvas.drawPath(path, paint);
                  imageview.invalidate();
                    break;
            case MotionEvent.ACTION_UP:
                  path.lineTo(event.getX(), event.getY());
                   canvas.drawPath(path, paint);
                    imageview.invalidate();

              break;
            case MotionEvent.ACTION_CANCEL:
              break;
            default:
              break;
            }
            return true;
          }

【问题讨论】:

  • 查看getImageMatrix方法并仔细阅读 Matrix API
  • 我什么时候应该调用这个方法...
  • 当你必须进行映射时:视图坐标位图坐标
  • 不行,这行不通

标签: android canvas


【解决方案1】:

实际上我的问题是我无法获得真正的 x 和 y 位置。

要做到这一点很简单,你可以在没有 pskink 先生帮助的情况下单独完成

            Matrix official= new Matrix();
            image.getImageMatrix().invert(official);
            float[] REALXY= new float[] {documentation.getX(), documentation.getY()};
            official.mapPoints(REALXY);
            float GETREALX;
             GETREALX=REALXY[0];
             float GETREALY;
             GETREALY= REALXY[1];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 2019-04-12
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    相关资源
    最近更新 更多