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

问题描述

我有一个基于 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,xpos,screenh,gridPaint);
        }

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...