Интерактивная анимация для Android

Я пытаюсь реализовать интерактивную анимацию в Android, где пользователь может изменять размер объекта и вращать его при взаимодействии.

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

Это не совсем то, что я пытаюсь реализовать, но нечто подобное.

Я хочу разрешить пользователю изменять линию угла «p», и при этом угол «a» должен измениться. Перемещение "p" относительно центра должно позволить изменить размер формы.

Я уже пробовал классы анимации и аниматора, но они не в полной мере служат целям.

Я не прошу никакого кода, мне просто нужен указатель на то, как я могу это реализовать.


person Pradumn Kumar Mahanta    schedule 06.01.2017    source источник
comment
Вы можете создать собственный вид и переопределить метод onDraw для рисования круга и луча. Затем добавьте слушателя касания для обработки манипуляций с геометрией.   -  person ashkhn    schedule 06.01.2017
comment
Вы не уверены в сенсорном взаимодействии, рисовании или математике, лежащей в основе рисования того, что вы хотите?   -  person Shane Duffy    schedule 06.01.2017
comment
@ShaneDuffy Я знаю о сенсорном взаимодействии, я не уверен в рисовании и манипуляциях с ними.   -  person Pradumn Kumar Mahanta    schedule 06.01.2017
comment
@ akash93 Не могли бы вы рассказать немного подробнее. Это часть Canvas, верно?   -  person Pradumn Kumar Mahanta    schedule 06.01.2017
comment
См. developer.android.com/training/custom-views/custom-drawing. .html   -  person ashkhn    schedule 06.01.2017
comment
(stackoverflow.com / questions / 20281265 /) обратитесь по этой ссылке   -  person Rathiga Jesika    schedule 06.01.2017


Ответы (1)


Насколько я могу судить, вы хотите, чтобы линия, круг и дуга, помеченные буквой «a», изменились относительно точки «p», к которой пользователь прикасается.

Линия

Эта часть относительно проста, если предположить, что вы уже знаете, как получить координаты X и Y, по которым щелкает пользователь. Во-первых, вам нужно переопределить метод onDraw, который предоставит вам элемент canvas, на котором вы можете рисовать. Затем, когда пользователь касается экрана, вы можете очень легко нарисовать линию от центра экрана к соответствующим координатам X и Y.

Круг

Эта часть также будет относительно простой, поскольку Canvas также имеет drawCircle, чтобы легко нарисовать круг вокруг заданных координат X и Y с заданным радиусом. Чтобы нарисовать круг, соответствующий событию касания пользователя, просто используйте функцию расстояния чтобы вычислить расстояние от точки касания пользователя по координатам X и Y до центра координаты экрана и использовать это значение в качестве радиуса для вашего круга.

Арка

Динамическое рисование дуги относительно сложно объяснить, и моя девушка уговаривает меня пойти поужинать с ней, но этот вопрос, я думаю, очень четко отвечает на него.

Также обратите внимание, что вам, вероятно, потребуется очищать холст при каждом касании, иначе все предыдущие рисунки начнут накладываться друг на друга. Ваше здоровье.

person Shane Duffy    schedule 06.01.2017
comment
Спасибо чувак. Это сработало. По крайней мере, дал мне указатель. Я начал с этого и наконец кое-чего достиг. Спасибо за подробное объяснение. :) - person Pradumn Kumar Mahanta; 09.01.2017