Я работаю над настраиваемым представлением ( расширяет представление
) и работаю в методе onDraw
.
Я проложил путь стрелка:
ARROW_PATH = new Path();
ARROW_PATH.setLastPoint(20, 37);
ARROW_PATH.lineTo(14, 25);
ARROW_PATH.lineTo(18, 26);
ARROW_PATH.lineTo(17, 4);
ARROW_PATH.lineTo(23, 4);
ARROW_PATH.lineTo(22, 26);
ARROW_PATH.lineTo(26, 25);
ARROW_PATH.close();
В разных сценариях ее нужно повернуть, чтобы отобразить определенный угол, и мне нужно нарисовать ее в определенной координате на виде. Координата также меняется в зависимости от сценария.
Я пробовал экспериментируя с Canvas.rotate
, похоже, что аспект пути искажается, когда значения px
и py
не равны (стрелка становится уже и выше, когда py> px
.
Я также пробовал Canvas.rotate (angle, 0, 0);
, а затем ARROW_PATH.moveTo (x, y) ;
но похоже, что координаты повернуты на произвольный угол, что очень затрудняет вычисление требуемых координат.
В идеале я бы хотел повернуть путь, а не холст, но я не думаю, что это операция поддерживается API.
Может ли кто-нибудь предложить лучший подход к этой проблеме?
спасибо, стр.