2016-07-14 3 views
0

У меня есть этот код, чтобы нарисовать линию хвоста стрелки между двумя точками, но как я должен нарисовать кривую линию для хвоста стрелки?Как нарисовать изогнутую стрелу в холсте андроида

canvas.drawLine(pt1[X], pt1[Y], pt2[X], pt2[Y], paint);//draw line 

Я хочу иметь что-то вроде этого, в результате чего стрелка является динамической

enter image description here

+0

Опубликовать скриншот какая стрелка вы хотите нарисовать –

ответ

0

В зависимости от того, какую форму вы хотите для изогнутой линии, вы могли бы, возможно, использовать Canvas.drawArc(), но ограничен к участкам овала, выровненным с осями экрана.

Для более общего подхода определите свою изогнутую линию как Path, а затем используйте Canvas.drawPath(), чтобы отобразить ее на холсте. A Path может состоять из произвольного числа участков прямой, квадратичной кривой и кубической кривой. (См. Документы о том, как построить Path, который вы хотите.) Для сплошного хвоста стрелки вы должны установить стиль краски FILL при вызове drawPath().

+0

У вас есть пример о том, как его нарисовать? –

+0

@ZhengXian - Рисование это не проблема - просто создайте «Путь» и вызовите 'canvas.drawPath (путь, краска);'. Проблема заключается в том, как вычислить путь. Учитывая ваш образец изображения, это сложная проблема с макетом, которая сильно отличается от заданного вами вопроса. Взгляните на [эту тему] (http://stackoverflow.com/questions/5028433/graph-auto-layout-algorithm), а также найдите в Интернете для алгоритмов макета _graph_. –

+0

Но есть ли какие-либо алгоритмы компоновки графиков с открытым исходным кодом для Java API, а не javascript –

Смежные вопросы