English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ce contrôle partage avec vous le code spécifique du contrôle glissant gestuel Android, à titre de référence, voici le contenu détaillé
1Nouveau contrôle personnalisé : MyView
public class MyView extends Button{}} //enregistrer les valeurs des coordonnées après le glissement précédent private int lastX; private int lastY; public MyView(Context context) { super(context); // TODO Auto-constructeur de Stub généré } public MyView(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onTouchEvent(MotionEvent event) { // Obtenir les valeurs xy du view par rapport à l'écran du téléphone 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; }
Le code ci-dessus représente une classe de bouton personnalisée, qui redéfinit la méthode onTouchEvent() pour écouter les glissements de l'utilisateur. Étant donné que l'on parle de glissements, il est naturel de mentionner les décalages.
translationX et translationY sont les décalages horizontaux et verticaux du coin supérieur gauche du View par rapport au layout parent. L'animation glissante est réalisée à l'aide de la bibliothèque tierce nineoldandroids.
ViewHelper.getTranslationY(this) calcule l'offset de ce View, la valeur initiale est 0, l'offset vers la gauche est négatif, et l'offset vers la droite est positif.
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="Je peux glisser"/> </RelativeLayout>
C'est tout pour cet article. J'espère que cela pourra aider à votre apprentissage. N'hésitez pas à soutenir le tutoriel de cri.
Déclaration : le contenu de cet article est tiré d'Internet, propriété intellectuelle de son auteur respectif. Le contenu est contribué par les utilisateurs d'Internet et téléchargé spontanément. Ce site ne possède pas de propriété intellectuelle, n'a pas été édité par l'homme, et n'assume aucune responsabilité juridique. Si vous trouvez du contenu présumé de violation de droits d'auteur, veuillez envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une violation, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu présumé de violation de droits d'auteur.)