2011-06-14 6 views
2

Je fais une application Android dans laquelle j'ai mis 10 images et mis la fonctionnalité ontouch, mais chaque fois que j'ai atteint la 10ème image, il fonctionne toujours et revenir à la 1ère image. Je souhaite arrêter la fonctionnalité ontouch sur la 10ème image ou la dernière image.Comment contrôler la fonctionnalité ontouch dans Android?

Quelqu'un sait-il à propos de cette fonctionnalité?

est ici le code Java:

public class Activity1 extends Activity implements OnTouchListener{ 

float downXValue; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // Set main.XML as the layout for this Activity 
    setContentView(R.layout.main); 

    // Add these two lines 
    LinearLayout layMain = (LinearLayout) findViewById(R.id.layout_main); 
    layMain.setOnTouchListener((OnTouchListener) this); 

    // Add a few countries to the spinner 
    Spinner spinnerCountries = (Spinner) findViewById(R.id.spinner_country); 
    ArrayAdapter countryArrayAdapter = new ArrayAdapter(this, 
       android.R.layout.simple_spinner_dropdown_item, 
       new String[] { "Canada", "USA" }); 
    spinnerCountries.setAdapter(countryArrayAdapter); 

} 

public boolean onTouch(View arg0, MotionEvent arg1) { 

    // Get the action that was done on this touch event 
    switch (arg1.getAction()) 
    { 
     case MotionEvent.ACTION_DOWN: 
     { 
      // store the X value when the user's finger was pressed down 
      downXValue = arg1.getX(); 
      break; 
     } 

     case MotionEvent.ACTION_UP: 
     { 
      // Get the X value when the user released his/her finger 
      float currentX = arg1.getX();    

      // going backwards: pushing stuff to the right 
      if (downXValue < currentX) 
      { 
       // Get a reference to the ViewFlipper 
       ViewFlipper vf = (ViewFlipper) findViewById(R.id.details); 
       // Set the animation 
        vf.setAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out)); 
        // Flip! 
        vf.showPrevious(); 
      } 

      // going forwards: pushing stuff to the left 
      if (downXValue > currentX) 
      { 
       // Get a reference to the ViewFlipper 
       ViewFlipper vf = (ViewFlipper) findViewById(R.id.details); 
       // Set the animation 
       vf.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in)); 
        // Flip! 
       vf.showNext(); 
      } 
      break; 
     } 
    } 

    // if you return false, these actions will not be recorded 
    return true; 
} 

}

ici est le code xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/layout_main" 
    > 

    <ViewFlipper android:id="@+id/details" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 




     <LinearLayout 
       android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      > 

      <ImageView android:id="@+id/ImageView01" android:background="@drawable/eea" 
      android:layout_x="1dip" android:layout_y="1dip" 
      android:layout_height="fill_parent" android:layout_width="fill_parent"></ImageView> 
     </LinearLayout> 

     <LinearLayout 
       android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      > 

      <ImageView android:id="@+id/ImageView01" android:background="@drawable/ef" 
      android:layout_x="1dip" android:layout_y="1dip" 
      android:layout_height="fill_parent" android:layout_width="fill_parent"></ImageView> 
     </LinearLayout> 

     <LinearLayout 
       android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      > 

      <ImageView android:id="@+id/ImageView01" android:background="@drawable/eg" 
      android:layout_x="1dip" android:layout_y="1dip" 
      android:layout_height="fill_parent" android:layout_width="fill_parent"></ImageView> 
     </LinearLayout> 

     <LinearLayout 
       android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      > 

      <ImageView android:id="@+id/ImageView01" android:background="@drawable/eh" 
      android:layout_x="1dip" android:layout_y="1dip" 
      android:layout_height="fill_parent" android:layout_width="fill_parent"></ImageView> 
     </LinearLayout> 


    </ViewFlipper> 

</LinearLayout> 

J'ai eu l'utilisation Voir Flipper dans mon code, puis ajouter les images à ce sujet.

+0

Où est la chose d'image u parlaient de ..? – ngesh

+0

désolé je poste le mauvais fichier xml maintenant je poste le rightone vous pouvez le voir. –

Répondre

2

Le 10 méthode de l'image onTouch()setFocussable("false"); et setFocussableInTouchMode("false") pour toutes les autres images .. seule façon que je suppose ..

+0

Je peux vous montrer mon code alors vous me direz où je mets ceci. Le code est dans la question –

+0

Je peux vous montrer mon code puis vous me dire où je dois placer ce –

+0

montrez-moi alors ... – ngesh

Questions connexes