2016-05-31 6 views
0

Я разрабатываю приложение, в котором я использую View-Flipper. В этом View-Flipper у меня есть представление изображения, которое переворачивает изображения в автоматическом режиме. Теперь я хочу выполнить прослушиватель кликов на каждом переворачивающемся изображении в виде flipper.Таким образом, и где я могу установить событие прослушивания кликов.Как выполнить событие click inViewFlipper

public class MainActivity extends Activity 
{ 
    @SuppressWarnings("unused") 

    private ViewFlipper mViewFlipper; 

    private GestureDetector mGestureDetector; 

    int[] resources = { 

      R.drawable.t1, 
      R.drawable.t2, 
      R.drawable.t3, 
      R.drawable.t4, 
      R.drawable.t5 
    }; 

    @Override  
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    // Get the ViewFlipper 
     mViewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper); 

    //Automatically Start Flipping  
     mViewFlipper.setAutoStart(true);  
     mViewFlipper.setFlipInterval(5000); // for 5 sec 

    // Add all the images to the ViewFlipper 
     for (int i = 0; i < resources.length; i++) 
     { 
      ImageView imageView = new ImageView(this); 
      imageView.setPadding(40, 80, 40, 80); 
      imageView.setImageResource(resources[i]); 
      mViewFlipper.addView(imageView); 

    // Set in/out flipping animations 
      mViewFlipper.setInAnimation(this, android.R.anim.fade_in); 
      mViewFlipper.setOutAnimation(this, android.R.anim.fade_out); 

      OnGestureListener customGestureDetector = new CustomGestureDetector(); 
      mGestureDetector = new GestureDetector(MainActivity.this, customGestureDetector); 
     }} 

     class CustomGestureDetector extends GestureDetector.SimpleOnGestureListener 
     { 
      @Override 
      public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) 
      { 

       // Swipe left (next) 
       if (e1.getX() > e2.getX()) 
       { 
        mViewFlipper.setInAnimation(MainActivity.this, R.anim.left_in); 
        mViewFlipper.setOutAnimation(MainActivity.this, R.anim.left_out); 

        mViewFlipper.showNext(); 
       } 

       // Swipe right (previous) 
       if (e1.getX() < e2.getX()) 
       { 
        mViewFlipper.setInAnimation(MainActivity.this, R.anim.right_in); 
        mViewFlipper.setOutAnimation(MainActivity.this, R.anim.right_out); 

        mViewFlipper.showPrevious(); 
       } 

       return super.onFling(e1, e2, velocityX, velocityY); 
      } 
     } 

     @Override 
     public boolean onTouchEvent(MotionEvent event) { 
      mGestureDetector.onTouchEvent(event); 

      return super.onTouchEvent(event); 
     } 

     @Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      // Inflate the menu; this adds items to the action bar if it is present. 
      getMenuInflater().inflate(R.menu.main, menu); 
      return true; 
     } 

     @Override 
     public boolean onOptionsItemSelected(MenuItem item) { 
      // Handle action bar item clicks here. The action bar will 
      // automatically handle clicks on the Home/Up button, so long 
      // as you specify a parent activity in AndroidManifest.xml. 
      int id = item.getItemId(); 
      if (id == R.id.action_settings) { 
       return true; 
      } 
      return super.onOptionsItemSelected(item); 
     } 
    } 
+1

добавить свой код .. – Pavya

+0

added..please скажите мне, как сделать –

ответ

1
for (int i = 0; i < resources.length; i++) { 
     ImageView imageView = new ImageView(this); 
     imageView.setPadding(40, 80, 40, 80); 
     imageView.setTag(i); 
     imageView.setImageResource(resources[i]); 

       imageView.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        String id = v.getTag().toString(); 
        // Toast id here 
       } 
      }); 
     mViewFlipper.addView(imageView); 

    // Set in/out flipping animations 
      mViewFlipper.setInAnimation(this, android.R.anim.fade_in); 
      mViewFlipper.setOutAnimation(this, android.R.anim.fade_out); 

     } 
+0

Спасибо ...... теперь его рабочая –

+0

еще один вопрос есть относительно этого. когда я использую этот код, который я вам отправил. flipping работает нормально вручную. но когда m используется в моем фактическом приложении, где он не работает вручную. –