Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不填充漏洞的情况下填充包含漏洞的Android路径?_Android_Graphics - Fatal编程技术网

如何在不填充漏洞的情况下填充包含漏洞的Android路径?

如何在不填充漏洞的情况下填充包含漏洞的Android路径?,android,graphics,Android,Graphics,我目前正在为Android编写非常简单的游戏(API级别7),以发现和学习Android SDK。这个游戏包括在屏幕上画形状,当触摸时会改变颜色 某些形状可能嵌入一个或多个孔。我的问题是:如果我触摸形状,整个东西的颜色都会改变,甚至是洞。这是我使用的伪代码,形状是我想画的多边形,边界是它的外边界,孔是它的孔数组。孔和边界包含其点的数组 Path MyPath = Path(); Path.moveTo(boundary.points[0].x, boundary.point[0].x); for

我目前正在为Android编写非常简单的游戏(API级别7),以发现和学习Android SDK。这个游戏包括在屏幕上画形状,当触摸时会改变颜色

某些形状可能嵌入一个或多个孔。我的问题是:如果我触摸形状,整个东西的颜色都会改变,甚至是洞。这是我使用的伪代码,形状是我想画的多边形,边界是它的外边界,孔是它的孔数组。孔和边界包含其点的数组

Path MyPath = Path();
Path.moveTo(boundary.points[0].x, boundary.point[0].x);
for (point in boundary) {
  MyPath.lineTo(point.x, point.y);
}
Path.close();

for (hole in shape.holes) {
  MyPath.moveTo(hole.points[0].x,hole.points[0].y);
  for (point in hole) {
    MyPath.lineTo(point.x, point.y);
  }
  MyPath.close();
}

// setting Paint here...
canvas.drawPath(MyPath, MyPaint);

关于Android中的路径,他们是我遗漏了什么,还是您有其他方法可以做到这一点?

您确定使用了正确的路径填充规则吗?如果您使用例如
缠绕
作为填充规则,则孔必须与外部边界的方向相反(例如,边界逆时针方向和孔顺时针方向)

您提出了一些以前不知道的路径创建方面,我将对此进行研究。非常感谢。你说得对,使用MyPath.setFillType(Path.FillType.偶数)就成功了。