2016-04-11 14 views
0

Ich möchte die Swipe (onFling) -Funktion von Android Gesten verwenden. Ich habe einige angrenzende Bilder zu chancge in ein anderes Bild, im Falle des Wischens. (Genau wie ich auf dem Bild gezeigt) Es sollte unabhängig davon funktionieren, in welche Richtung der Spieler seinen/ihren Finger streicht. Könnten Sie mir einen Link geben? Oder irgendeine Idee, welche Komponenten ich verwenden soll? enter image description hereSo verwenden Sie Swipe auf verschiedene Objekte

Antwort

0

Da Ihre Geste scheint die Prämisse gelten, dass es müssen:

  • Gesture müssen alle benachbarten Ansichten enthalten.
  • Geste hat einen direkten linearen begginning und Ende
  • Geste ist eine einzige Bewegung
  • Geste mit anderen ähnlichen Gesten nicht
  • in Konflikt Vielleicht möchten Sie für Ansichten auf „Motion“, und der OnTouch Zuhörer lesen.

    Eine einzelne Flagge private static View beganOn; auf der Elternklasse (ich nehme eine Aktivität an). Dann:

    public void onTouch(View v, MotionEvent m){ 
        if(beganOn!=null){ 
         begaOn = v; 
         return; 
        } else { 
         // Where the view Tag, is an Integer to state what number it is in the sequence. 
         doSelectionOfViews(beganOn.getTag(),v.getTag()); 
         begaOn = null; 
        } 
    } 
    
    0

    übersteuern Sie die onfling() Methode des Gesture Detector. Sie werden in der Lage sein, die Swipe-Richtung darunter zu bekommen. Nimm jetzt zwei Zähler für beide Richtungen und inkrementiere sie (d. H. Zählung ++) beim Rechts/Links-Wischen und umgekehrt. Unten gebe ich den Code ein, mit dem Sie diesen runden Indikator erstellen können. Was auch immer hervorgehoben werden soll, Sie müssen nur den Index übergeben.

    Hier image_indicator ist ein lineares Layout in Xml definiert.

    public static class DotsScrollBar 
    { 
        LinearLayout main_image_holder; 
        public static void createDotScrollBar(Context context, 
          LinearLayout main_holder, int selectedPage, int count) 
        { 
         for (int i = 0; i < count; i++) { 
          ImageView dot = null; 
          dot = new ImageView(context); 
          LinearLayout.LayoutParams vp = new LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.WRAP_CONTENT, 
            LinearLayout.LayoutParams.WRAP_CONTENT); 
          vp.setMargins(8, 8, 8, 8); 
          dot.setLayoutParams(vp); 
          if (i == selectedPage) { 
           try 
           { 
            dot.setImageResource(R.drawable.page_hint_pre); 
           } 
           catch (Exception e) 
           { 
    
           } 
          } else 
          { 
            dot.setImageResource(R.drawable.page_hint_def); 
          } 
          main_holder.addView(dot); 
         } 
         main_holder.invalidate(); 
        } 
    } 
    

    Übergeben Sie den Index in der upDateIndicator() -Methode, um diesen bestimmten Incator hervorgehoben zu machen.

    Verwandte Themen