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

Implementación de控件 de deslizamiento a través de View personalizado en Android

Este control comparte el código específico del control de deslizamiento de gestos en Android para que todos lo refieran, los detalles son los siguientes

1.Crear una clase de control personalizado: MyView

public class MyView extends Button{}}
//registra el valor de coordenada de la última vez que se deslizó
private int lastX;
private int lastY;
public MyView(Context context) {
  super(context);
  // TODO Auto-generado por el constructor de plantilla
}
public MyView(Context context, AttributeSet attrs) {
  super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
  // Obtener las coordenadas xy del view en relación con la pantalla del teléfono
  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;
}

El código anterior es una clase de botón personalizada, que sobrescribe el método onTouchEvent() para escuchar el deslizamiento del usuario. Al hablar de deslizamiento, inevitablemente surge la expresión de desplazamiento.

translationX y translationY son las coordenadas de desplazamiento del extremo superior izquierdo del View en relación con el diseño del padre. La animación de deslizamiento se realiza a través de la implementación de third-party nineoldandroids.

ViewHelper.getTranslationY(this) calcula el desplazamiento del View, el valor inicial es 0, el desplazamiento hacia la izquierda es negativo y el desplazamiento hacia la derecha es positivo.

2.xml diseño

<?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="Puedo deslizar"/>
</RelativeLayout>

Esto es todo el contenido de este artículo, espero que sea útil para su aprendizaje y que todos los demás den más apoyo a la enseñanza de grito.

Declaración: El contenido de este artículo se obtiene de la red, pertenece al propietario original, el contenido se contribuye y sube por los usuarios de Internet, este sitio no posee los derechos de propiedad, no se ha procesado editorialmente y no asume responsabilidades legales relacionadas. Si encuentra contenido sospechoso de copyright, por favor envíe un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, reemplace # con @) para denunciar, y proporcione evidencia relevante. Una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción.

Te gustará