Как программно создать сегменты ar c, которые доступны только по периметру - PullRequest
0 голосов
/ 09 июля 2020

Я создаю пользовательский интерфейс в Android, где пользователю нужно выбрать среди ar c «сегментов», размещенных друг над другом, чтобы определить, «включены» они или «выключены», как показано ниже. Я новичок ie в Android и не знаю, какие элементы использовать для этого. Я пробовал «ArcShape» до сих пор, но он создает «заполненную» форму, фактически сектор круга, а не ar c. Мне также нужно, чтобы элементы можно было щелкать только по периметру.

Вот скриншот из моей реализации JavaFX:

введите описание изображения здесь

Мне пришлось использовать вычитание формы, чтобы получить желаемую функциональность, но я не понимаю, как это сделать на Android.

public class ArcContourFactory {
    public static Shape newArcContour(double centerX, double centerY,
            double radiusX, double radiusY, double startAngle,
            double length, double strokeWidth) {
        Arc contour = new Arc(centerX, centerY,
                radiusX + strokeWidth / 2, radiusY + strokeWidth / 2,
                startAngle, length);
        Arc inside = new Arc(centerX, centerY,
                radiusX - strokeWidth / 2, radiusY - strokeWidth / 2,
                startAngle, length);
        contour.setStrokeWidth(0);
        contour.setType(ArcType.ROUND);
        inside.setType(ArcType.ROUND);
        Shape returnShape = Shape.subtract(contour, inside);
        returnShape.setStrokeType(StrokeType.INSIDE);
        returnShape.setFill(Color.TRANSPARENT);
        return returnShape;
    }
}
...