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

Implementação do controle de deslize de gestos no Android Custom View

Este controle compartilha o código detalhado do controle de deslize de gestos do Android, para referência dos usuários, os detalhes são os seguintes

1Criar uma classe de controle personalizado: MyView

public class MyView extends Button{}}
//Gravar o valor de coordenadas após o último deslize
private int lastX;
private int lastY;
public MyView(Context context) {
  super(context);
  // TODO Auto-esqueleto de construtor gerado
}
public MyView(Context context, AttributeSet attrs) {
  super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
  // Obter os valores xy do view em relação à tela do telefone
  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;
}

O código acima é uma classe de botão personalizado, que reimplementa o método onTouchEvent() para monitorar o deslize do usuário. Dito isso, é inevitável mencionar a existência de distâncias de deslocamento.

translationX e translationY são as distâncias de deslocamento do canto superior esquerdo do View em relação ao layout pai. A animação de deslize é implementada por meio do terceiro party nineoldandroids.

ViewHelper.getTranslationY(this) calcula o deslocamento deste View, o valor inicial é 0, o deslocamento para a esquerda é negativo, e o deslocamento para a direita é positivo.

2.xml layout

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

Isso é tudo o que há no artigo, esperamos que ajude no seu aprendizado e que você apoie fortemente o tutorial Yell.

Declaração: O conteúdo deste artigo é de internet, pertencente ao respectivo proprietário. O conteúdo é contribuído e carregado por usuários da internet, este site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidades legais relacionadas. Se você encontrar conteúdo suspeito de violação de direitos autorais, por favor, envie e-mail para: notice#oldtoolbag.com (ao enviar e-mail, substitua # por @ para denunciar, e forneça provas relevantes. Atingida, o site deletará imediatamente o conteúdo suspeito de violação de direitos autorais.)

Você também pode gostar