2011-02-13 109 views
4

我目前正在为Android(API级别7)编程非常简单的游戏来发现和学习android SDK。这个游戏涉及屏幕上的绘图形状,当触摸时会改变颜色。如何填充包含洞而不填充洞的Android路径?

某些形状可能会嵌入一个或多个孔。我的问题是:如果我触摸形状,整个事物的颜色会发生变化,即使是“洞”。这里是我使用的伪代码,形状是我想要绘制的多边形,边界是外边界,是它的一个孔阵列。孔和边界拥有他们点的数组。

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中的路径,或者你有一些替代方法来做到这一点?

回答

7

您确定您使用正确的路径填充规则吗?如果使用例如WINDING作为填充规则,则孔必须在相对于外边界的相反方向上(例如,逆时针方向的边界和顺时针方向的孔)

+2

您提出了之前未知的路径创建的某些方面,我会研究它。谢谢 ! – thomas 2011-02-13 13:45:02