English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Android пользовательский вид для реализации контроллера скольжения手势а

В этом контроллере представлен конкретный код для управления手势ом скольжения в 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 (при отправке письма, пожалуйста, замените # на @) для подачи жалобы, и предоставьте соответствующие доказательства. Если будет подтверждено, сайт немедленно удалил涉嫌侵权的内容。

Рекомендуем также