English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом контроллере представлен конкретный код для управления手势ом скольжения в Android, который можно использовать в качестве справочного материала, подробности см. ниже
1. Создание пользовательского контроллера: MyView
public class MyView extends Button{ // Запись последней координаты прокрутки private int lastX; private int lastY; public MyView(Context context) { super(context); // TODO Автоматически сгенерированный конструктор } public MyView(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onTouchEvent(MotionEvent event) { // Получение координат xy view по отношению к экрану телефона int x = (int) event.getRawX(); int y = (int) event.getRawY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: break; case MotionEvent.ACTION_MOVE: int deltaX = x - lastX; int deltaY = y - lastY; int translationX = (int) (ViewHelper.getTranslationX(this) + deltaX); int translationY = (int) (ViewHelper.getTranslationY(this) + deltaY); ViewHelper.setTranslationX(this, translationX); ViewHelper.setTranslationY(this, translationY); break; case MotionEvent.ACTION_UP: break; default: break; } lastX = x; lastY = y; return true; }
Этот код представляет собой пользовательский класс кнопки, который перегружает метод onTouchEvent() для监ирования скольжения пользователя. 既然 говорится о скольжении, то, естественно, будет упоминание о смещении.
translationX и translationY представляют собой смещение верхнего левого угла View по отношению к родительскому макету. Анимация скольжения реализуется с помощью третьей стороны nineoldandroids.
ViewHelper.getTranslationY(this) вычисляет смещение этого View, начальное значение равно 0, смещение влево равно отрицательному значению, а смещение вправо равно положительному значению.
2.xml разметка
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <com.example.administrator.slide.MyView android:id="@+id/myview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Я могу скользить"/> </RelativeLayout>
Вот и все содержимое статьи, надеюсь, это поможет вам в изучении, также希望大家多多支持呐喊教程。
Декларация: данное содержимое получено из Интернета, авторские права принадлежат соответствующему владельцу, содержимое предоставлено пользователями Интернета в качестве добровольного вклада, сайт не обладает правами собственности, не производилось редактирование вручную, и не несет ответственности за соответствующие юридические обязательства. Если вы обнаружите подозрительное содержимое о нарушении авторских прав, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (при отправке письма, пожалуйста, замените # на @) для подачи жалобы, и предоставьте соответствующие доказательства. Если будет подтверждено, сайт немедленно удалил涉嫌侵权的内容。