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

重置Android中不工作的路径

衡子安
2023-03-14

我目前正在开发一个游戏,其中计算机根据旅行商问题算法沿阵列列表中的点绘制路径。每次迭代时,我都需要重置之前的路径。目前,迭代生成的每个新路径都是在前一条路径的基础上绘制的,因此看起来都非常混乱。功能路径。根据android文档,reset()似乎无法正常工作。这是我的代码,谁能指出我哪里出错了??

//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

在循环中调用moveTo时,其效果与调用reset()相同。moveTo()设置下一个轮廓的开始,但实际上只需要绘制一个轮廓。我更改了您的代码,您可以看到其中的差异:

        int i=0;
        test.add(test.get(0));
        Point c = test.get(i);
        path.moveTo(c.x,c.y); // move this line out of the loop
        for (i=0;i<(test.size()-1);i++) {

            c = test.get(i+1);
            path.lineTo(c.x,c.y);
            canvas.drawPath(path,paint); 

//          path.reset(); // comment out reset()
        } 
        int i=0;
        test.add(test.get(0));
        Point c = test.get(i);
        path.moveTo(c.x,c.y);
        for (i=0;i<(test.size()-1);i++) {

            c = test.get(i+1);
            path.lineTo(c.x,c.y);
            canvas.drawPath(path,paint); 

            path.reset(); // uncomment reset()
        } 
 类似资料:
  • 我正试图在Android中做一个向后兼容的工具栏,我遵循了多种风格指南中给出的所有建议来尝试和完成这个。然而,它似乎仍然不起作用。风格是这样的: 这是工具栏: 这是onCreate方法的主要活动: 不太确定出了什么问题,因为我遵循了许多消息来源给出的所有说明。这是日志: 我花了几个小时研究这段代码,以及无数的教程和StackOverflow问题,但是毫无用处。如果有人能帮助我,我将不胜感激。提前感

  • 我使用的是Resilience4J断路器,我需要忽略一些自定义异常,所以我需要更改默认配置。我在使用微服务,所以我有一个连接到数据库的微服务,它有一些基本的请求,比如get by id,我还有一个使用这些请求的边缘服务。例如,我需要,如果id不存在,微服务会抛出一个自定义异常,在这种情况下断路器不会打开。 数据库的微服务: 获取请求 > 服务 public SalesRepDTO getSales

  • 我正在尝试为我正在编写的程序使用其他JAR。 我安装了所有必需的文件,并将它们添加到类路径中,但Java无法识别这些包。 我在jar位置之间加了分号,但Java无法识别jar中的包。为什么会这样? 例如,我的类路径如下所示: .; C:\Program Files(x86)\Java\jre7\lib\exts\QTJava.zip;C:\用户\JOE\下载\aseymock-3.2\asymoc

  • 我的java bin文件夹包含java.exe @大卫华莱士 Microsoft Windows[版本6.3.9600](c)2013 Microsoft Corporation。保留所有权利。 C:\用户\Andy\AppData\漫游\Microsoft\Windows\开始菜单\Programs\Startup>

  • 我有一个视频流服务器,它能够使用rtp通过摄像头捕获视频帧。我的android mobile作为客户端,能够通过以下管道传输输出: udpsrc端口=5004!应用程序/x-rtp,时钟速率=90000,编码名称=(字符串)H264,有效负载=96!队列rtph264depay!H264解析!decodebin!自动视频接收器 但是,如果我用fpsdisplysink替换autoVideosink

  • 我试着显示用户的当前位置(我主要需要邮政编码),当我启动应用程序时什么也没发生,应用程序只是显示空标签而没有崩溃消息。这是我的代码: