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