我无法通过 onTouch 方法在我的画布上绘图.为什么不工作



这是我的第一个问题!希望你能帮到我!

我解释:

我正在尝试在安卓工作室中开发一个像 paint 这样的应用程序来与 Paint、Canvas 和这个类一起工作......

我有一个班级叫.java连佐;这是我类的代码:

package com.example.pedro.paint;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.graphics.Path;
/**
 * Created by Pedro on 26/02/2018.
 */
public class Lienzo extends View {
    //PATH TO DRAW THE LINES
    private Path drawPath;
    //PAINT DRAWING AND PAINT CANVAS
    private Paint drawPaint,canvasPaint;
    //COLOR INITIAL
    private int paintColor=0xFFFF0000;
    //CANVAS
    private Canvas drawCanvas;
    //CANVAS TO SAVE
    private Bitmap canvasBitmap;

    public Lienzo(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        setupDrawing();
    }
    private void setupDrawing(){
        //CONFIGURATION AREA TO DRAW
        drawPath = new Path();
        drawPaint=new Paint();
        drawPaint.setColor(paintColor);
        drawPaint.setAntiAlias(true);
        drawPaint.setStrokeWidth(20);
        drawPaint.setStyle(Paint.Style.STROKE);
        drawPaint.setStrokeJoin(Paint.Join.ROUND);
        drawPaint.setStrokeCap(Paint.Cap.ROUND);
        canvasPaint= new Paint(Paint.DITHER_FLAG);
    }
    //ASIGN SIZE TO VIEW
    @Override
    protected void onSizeChanged(int w, int h,int oldw, int oldh){
        super.onSizeChanged(w,h,oldw,oldh);
        canvasBitmap=Bitmap.createBitmap(w,h,Bitmap.Config.ARGB_8888);
        drawCanvas=new Canvas(canvasBitmap);
    }
    //PAINT THE VIEW.CALL BY ONTHOUCHEVENT
    @Override
    protected void onDraw(Canvas canvas){
        canvas.drawBitmap(canvasBitmap,0,0,canvasPaint);
        canvas.drawPath(drawPath,drawPaint);
    }

    //REGISTER USER TOUCH
    public boolean OnTouchEvent(MotionEvent event)
    {
        float touchX =event.getX();
        float touchY=event.getY();
        switch (event.getAction())
        {
            case MotionEvent.ACTION_DOWN:
                drawPath.moveTo(touchX,touchY);
                break;
            case MotionEvent.ACTION_MOVE:
                drawPath.lineTo(touchX,touchY);
                break;
            case MotionEvent.ACTION_UP:
                drawPath.lineTo(touchX,touchY);
                drawCanvas.drawPath(drawPath,drawPaint);
                drawPath.reset();
                break;
            default:
                return false;
        }
        //REPAINT
        invalidate();
        return true;
    }
}

我没有错误,但我尝试绘画但什么也不做。这是一个示例的副本。原始 https://www.youtube.com/watch?v=GAr_agEokr8 有效,但我的代码,它等于并且不起作用。有人知道为什么吗?

谢谢和问候!

OnTouchEvent更改为onTouchEvent并添加@Override

最新更新