Android 画布上的位图笔刷路径-不是平滑路径

Android 画布上的位图笔刷路径-不是平滑路径,android,bitmap,android-canvas,surfaceview,Android,Bitmap,Android Canvas,Surfaceview,我想用透明画布和surfaceView开发一款游戏 我创建了一个屏幕大小的屏幕外位图(myCanvasBitmap) 每次,我都为该位图创建一个新画布 我使用drawBitmap()在位图上绘制 我使用drawBitmap()将位图复制到曲面 问题是,如果我画“快”(快速移动手指),线条不一致-圆圈位图彼此距离太远。 但当我画“慢”的时候,圆圈位图就很接近了 快速: (oooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuo)

我想用透明画布和surfaceView开发一款游戏

  • 我创建了一个屏幕大小的屏幕外位图(myCanvasBitmap)

  • 每次,我都为该位图创建一个新画布

  • 我使用drawBitmap()在位图上绘制
  • 我使用drawBitmap()将位图复制到曲面
  • 问题是,如果我画“快”(快速移动手指),线条不一致-圆圈位图彼此距离太远。 但当我画“慢”的时候,圆圈位图就很接近了

    快速: (oooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuo)

    慢:(呜呜呜呜呜呜呜呜) (呜呜)

    我在这里读了一些帖子,意识到我应该以某种方式使用“drawPath”(能够完成并绘制两个位置之间的所有点,但问题是“drawPath”可以使用我没有的绘画(我使用位图笔刷)

    有人知道我如何添加路径代码来使用我的surfaceView程序并解决这个中断问题吗

     public class SurfaceMyPaint extends SurfaceView implements Runnable 
      {
        Thread t;
        SurfaceHolder holder;
        Bitmap brush,myCanvasBitmap;
        boolean isItOk = false;
    
    public SurfaceMyPaint(Context context) 
    {
        super(context);
        holder = getHolder();
        initial();
    }
    
    public void initial() 
    {
        brush= BitmapFactory.decodeResource(getResources(), R.drawable.brush2);       
    }
    
    public boolean onTouchEvent(MotionEvent event) 
    {
        if(event.getAction()== MotionEvent.ACTION_DOWN)
        {            
           x= event.getX();
           y= event.getY();
        }
    
       if(event.getAction()== MotionEvent.ACTION_MOVE)
       {
         x = event.getX();
         y= event.getY();
       }
       return true;
    }
    
    
    public void run()
    {
        while (isItOk == true)
        {
        if (!holder.getSurface().isValid())
            continue;
        myCanvas_w = getWidth();
        myCanvas_h = getHeight();
        if (myCanvasBitmap== null)
        {myCanvasBitmap= Bitmap.createBitmap(myCanvas_w, myCanvas_h, Bitmap.Config.ARGB_8888);}
        Canvas c = new Canvas(myCanvasBitmap);
        canvas = holder.lockCanvas(null);
        c.drawBitmap(brush, x - (brush.getWidth() / 2), y - (brush.getWidth() / 2), null);
        canvas.drawBitmap(myCanvasBitmap, 0, 0, null);
        holder.unlockCanvasAndPost(canvas);
        }
    }}