如何保存用户绘制路径的单独位图?

时间:2020-12-29 13:23:15

标签: android canvas android-canvas android-bitmap

我有一个基于 Canvas 的视图,我正在尝试实现两个重叠功能

  1. 网格
  2. 用户的绘图。

最后,我只想保存没有网格的用户绘图。

  1. 网格(水平/垂直线) - 我在 draw 方法中绘制这些。
   public void draw(Canvas canvas) {
        super.draw(canvas);
        //Vertical lines
        for(int wi=0; wi <= wdivisions+1; wi++){
            float xpos = (screenw/wdivisions)*wi;
            canvas.drawLine(xpos, 0, xpos, screenh, gridPaint);
        }

        //Horizontal lines
        for(int hi=0; hi < hdivisions+1; hi++){
            float ypos = (screenh/hdivisions)*hi;
            canvas.drawLine(0, ypos, screenw,  ypos, gridPaint);
        }
    }
  1. 用户绘制的路径 - 这些在 onDraw 方法内更新。
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawBitmap(canvasBitmap, 0, 0, canvasPaint);
        canvas.drawPath(drawPath, drawPaint);
    }

我尝试了各种选项,例如 canvas.setBitMapcanvas.drawBitMap,但我无法将背景网格与用户绘制的路径分开。

例如,以下代码为我提供了网格线和用户绘图的位图。

    public Bitmap getBitmapFromView(View view)
    {
        Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        view.draw(canvas);
        return bitmap;
    }

关于如何解决这个问题的任何想法?

0 个答案:

没有答案