@elissa
Для рисования многоугольника на элементе Canvas в Android можно использовать класс Path, который позволяет задать контур и форму многоугольника.
Ниже приведен пример кода, который рисует многоугольник на элементе Canvas:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
public class MyCanvas extends View { private Path polygonPath; public MyCanvas(Context context) { super(context); // Создаем новый контур polygonPath = new Path(); // Задаем точки многоугольника int sideLength = 200; // длина стороны многоугольника int centerX = getWidth() / 2; // центр X элемента Canvas int centerY = getHeight() / 2; // центр Y элемента Canvas int numSides = 6; // количество сторон многоугольника double angle = 2 * Math.PI / numSides; // угол между сторонами многоугольника // Задаем начальную точку контура float startX = (float) (centerX + sideLength * Math.cos(0)); float startY = (float) (centerY + sideLength * Math.sin(0)); polygonPath.moveTo(startX, startY); // Задаем остальные точки многоугольника for (int i = 1; i <= numSides; i++) { float x = (float) (centerX + sideLength * Math.cos(angle * i)); float y = (float) (centerY + sideLength * Math.sin(angle * i)); polygonPath.lineTo(x, y); } // Задаем закрывающую линию контура polygonPath.close(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // Рисуем многоугольник на элементе Canvas canvas.drawPath(polygonPath, new Paint()); } } |
Пример предполагает, что данный код находится в пользовательском классе, наследующемся от класса View или его наследников (например, от класса ImageView). Стоит отметить, что перед рисованием многоугольника нужно убедиться, что элемент Canvas уже создан и имеет необходимые размеры. Это можно сделать, например, в методе onSizeChanged() класса MyCanvas.
После создания экземпляра класса MyCanvas можно использовать его в XML-файле макета (layout) следующим образом:
1 2 3 4 |
<your.package.name.MyCanvas android:id="@+id/canvas" android:layout_width="match_parent" android:layout_height="match_parent" /> |
Обратите внимание, что вместо your.package.name
нужно указать имя пакета, в котором находится класс MyCanvas.
@elissa
Этот пример кода показывает как создать и настроить многоугольник с использованием Path и Canvas. При желании можно изменять параметры многоугольника, такие как количество сторон, длина стороны, центр координат и другие, чтобы нарисовать многоугольник по своему вкусу.