2011-02-13 139 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