Створюємо керований рух об’єктом за допомогою перетягування

У цьому уроці ми навчимося створювати рух об'єкта по екрану з повним контролем цього дотику пальця. У нас на екрані буде усіма улюблене зображення ic_launcher, яке можна буде пересувати по всьому екрану в будь-яку точку.

Почнемо із створення нового проекту, вибираємо Blank Activity, мінімальна версія Android буде 2,2+.

Створимо нехитрий інтерфейс програми. Відкриваємо файлactivity_main.xml і додамо туди елементImageView :

Тепер переходимо до написання самої програми MainActivity.java. Все, що відбувається, крутиться навколо використання двох речей -RelativeLayout.LayoutParams і класуMotionEvent. За допомогою RelativeLayout.LayoutParams ми запхнемо наше зображення у певні рамки (зробимо його розміром 100*100) і змінюватимемо положення зображення, відстежуючи нові координати положення зображення на екрані.

Клас MotionEvent визначає рух за допомогою набору значень координат. Він складається з певних команд та числових значень по осях координат, що визначає положення об'єкта. Наприклад, коли користувач вперше торкається екрана, викликається командаACTION_DOWN, а також набір значень X, Y, що включають координати точки дотику.

З класу MotionEvent у нас буде використано 2 команди:MotionEvent.ACTION_DOWN - відслідковує факт дотику до об'єкта та початок руху, тут будуть визначатися початкові координати об'єкта, далі в роботу вступаєMotionEvent.ACTION_MOVE, в якій відбувається динамічна зміна положення об'єкта за час жесту дотику та міститься точка останньої зупинки, встановлена ​​після завершення дії MotionEvent.ACTION_DOWN.

Додаємо у файлMainActivity.java наступний код:

Ну а тепер перевіримо, чи працює програма, чи вийшов бажаний керований рух. Запускаємо програму і милуємося результатом:

єктом
єктом

Наш Андруш успішно рухається по всьому екрану, сподіваюся у вас також :).