Как заполнить путь Android, который содержит отверстия без заполнения отверстий?

В настоящее время я программирую очень простую игру для Android (API уровня 7), чтобы открыть и изучить 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); 

Их что-то мне не хватает в отношении Path в Android или у вас есть альтернативный способ сделать это?

Вы уверены, что используете правильное правило заполнения пути? Если вы используете, например, WINDING качестве правила заполнения, отверстия должны находиться в противоположных направлениях относительно внешней границы (например, граница против часовой стрелки и отверстия по часовой стрелке)