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

Android-Implementierung eines benutzerdefinierten Views für Gestensteuerung

Dieser Steuerelement teilt den spezifischen Code des Android-Gesten-Schieberelements mit Ihnen und bietet Ihnen zur Referenz, der Inhalt ist wie folgt

1Neuer benutzerdefinierter Steuerelementklasse: MyView

public class MyView extends Button{}}
//Zeichnen Sie die Koordinatenwerte des letzten Wischvorgangs auf.
private int lastX;
private int lastY;
public MyView(Context context) {
  super(context);
  // TODO Auto-generated constructor stub

public MyView(Context context, AttributeSet attrs) {
  super(context, attrs);

@Override
public boolean onTouchEvent(MotionEvent event) {
  // Erhalten Sie die xy-Werte des Views im Verhältnis zum Bildschirm des Telefons.
  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;

Dieser Code ist eine benutzerdefinierte Button-Klasse, die die Methode onTouchEvent() überschreibt, um den Benutzerwischvorgang zu überwachen. Wenn von Wischen die Rede ist, muss natürlich auch von Verschiebungen die Rede sein.

translationX und translationY sind die Verschiebungen des oberen linken Ecks des Views im Verhältnis zum übergeordneten Layout. Die Animationsscrollung wird durch den Drittanbieter nineoldandroids implementiert.

ViewHelper.getTranslationY(this) berechnet den Verschiebungsabstand dieses Views, der Standardwert ist 0, der Wert der linken Verschiebung ist negativ und der Wert der rechten Verschiebung ist positiv.

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="Ich kann scrollen"/>
</RelativeLayout>

Das ist der gesamte Inhalt dieses Artikels. Ich hoffe, er hilft Ihnen bei Ihrem Lernen und ich hoffe, dass Sie die呐喊教程大力支持。

Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet übernommen und gehört dem Urheberrecht des Urhebers. Der Inhalt wurde von Internetbenutzern selbstständig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Wenn Sie verdächtige urheberrechtliche Inhalte finden, sind Sie herzlich eingeladen, eine E-Mail an notice#w zu senden.3codebox.com (Bitte ersetzen Sie # durch @ beim Senden von E-Mails zur Meldung von Verstößen und stellen Sie relevante Beweise zur Verfügung. Sobald nachgewiesen wird, dass der Inhalt urheberrechtlich geschützt ist, wird diese Website den mutmaßlich urheberrechtlich geschützten Inhalt sofort löschen.)

Vielleicht gefällt dir auch