当前位置: 首页 > 知识库问答 >
问题:

删除android中的路径生成

洪子晋
2023-03-14

我有一个android应用程序,它在数组列表中绘制点的路径(名为“test”)。一种算法每次都会更新数组列表以使路径更短(它使用旅行推销员问题算法)。我目前面临的问题是以前的路径不清除,而是新的路径会覆盖以前的路径。

//this class draws a line
public void CompDrawLine(List test) {
    // int d = 0;
    int i=0;
    test.add(test.get(0));
    Point c = test.get(i);

    for (i=0;i<(test.size()-1);i++) {
        cPath.moveTo(c.x,c.y);
        c = test.get(i+1);
        cPath.lineTo(c.x,c.y);
        mCanvas.drawPath(cPath,cPaint);

        //cPath.reset();
    }

    // cPath.reset();
    invalidate();
}

共有1个答案

沈国安
2023-03-14

要清除Canvas,您需要在其上绘图,例如:

mCanvas.drawColor(Color.WHITE);

如果您需要使用Canvas的先前状态,则需要实现一些逻辑,例如使用Memento模式

编辑:

在画布上使用Memento模式可能很难管理,并导致性能问题。

根据位图的大小,在位图对象上使用Memento图案也可能导致性能或内存问题。

在这种情况下(如您在评论中所见),@Amna Hussain解决了再次以白色绘制同一路径的问题,以删除先前绘制的路径作为解决方法。

 类似资料:
  • 我正在使用ANTLRWorks 1.4.3和ANTLR 3.4从语法文件生成基于Java的解析器和lexer。生成的<代码>。java-文件包含如下字符串 此绝对路径用作 返回字符串,例如lexer和parser的方法getgrammaryfilename()中的字符串,以及 在这两个文件中,都有不同的注释 我看到以下缺点: 如果其他在其开发环境中具有不同路径的人将重新生成这些文件,那么即使没有对

  • 我导入了一个已经存在的gradle项目,所有的工作都很好,但是当我从eclipse刷新gradle源代码文件夹时,src和test文件夹都从构建路径中删除了,并且在test文件夹中使用的类也找不到了。 我试着把它作为一个Java和gradle项目导入,但到目前为止没有任何效果。此外,将build.gradle主源集更改为srcDirs=“src”也没有帮助。 这是我的建筑.Gradle,和原来的项

  • 问题内容: 我如何消除在代码点火器中位于中心某处的每个路径中的突出?我要清洁非吗? 问题答案: 如果您使用的是Apache,请将.htaccess文件放在根Web目录中,其中包含以下内容:

  • 我在Win10中使用Windows子系统Linux(Ubuntu 18.04),并在其中安装了一个Maven。此外,我之前在Win10中安装了一个maven。现在,当我在WSL中使用时,它告诉我maven编译失败。我使用,发现它引用了Win10中安装的Maven。 此外,我运行并发现win10的路径被添加到wsl的路径中。我在使用WSL的时候不想使用Win10的路径中的任何东西,该怎么办呢?

  • 我有一个包含一些文件路径的长文本。 我想做的是从其中删除路径。文件路径都类似于: 我知道使用“^/all”将选择以/all开头的句子,并选择以.js$结尾的句子。但我无法将这些合并在一起以选择整个文件路径。 毕竟,正则表达式应该放在下面的代码上以删除路径。 我能为它写正则表达式吗?有什么工具吗?

  • 接口说明 如果已建立了视点之间的关联,而由于某些原因,不想再进行视点之间动画飞行,Wish3DEarth团队新增了删除飞行路径的接口,开发者可以通过该接口,来解除视点之间的动画飞行。 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/flyline/1.0.0/del 是否需要登录 是 请求字段说明 参数 类型 请求类型 是