Jay240692
Jay240692

Reputation: 176

swipe image left and right android

I am storing two images in an array, the images come up but what I am trying to achieve is when the user swipes the screen to the right the second image comes up and when swiped left back to the first image. I am quite new to android app development some help would be much appreciated. At the moment all that happens is when the user clicks the image it goes to the second image and thats it.

I have also added my code:

public class ScrollingQuran extends Activity {

private ImageView imgView;


private Integer[] Imgid = {

        R.drawable.page1, R.drawable.page2

};



@Override

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.qurangallery);


    imgView = (ImageView)findViewById(R.id.ImageView01);

    imgView.setImageResource(Imgid[0]);

    imgView.setOnTouchListener(new OnTouchListener()
    {

        public boolean onTouch(View v, MotionEvent event)
        {
        ImageView iv = (ImageView) v;
        if (event.getAction() == MotionEvent.AXIS_VSCROLL) {

            iv.setImageResource(R.drawable.page2);
            return true;
        } else if (event.getAction() == MotionEvent.AXIS_HSCROLL) {
            iv.setImageResource(R.drawable.page2);
            return true;
        }

        return false;
    }

});

Upvotes: 1

Views: 6823

Answers (2)

viks
viks

Reputation: 404

I think this code will help you.In this transimg1 is an imageswitcher

in_right = AnimationFactory.inFromRight();  
in_left = AnimationUtils.loadAnimation(this,android.R.anim.slide_in_left);  
out_right = AnimationUtils.loadAnimation(this,android.R.anim.slide_out_right);      
out_left = AnimationFactory.outToLeft();
gestureDetector1 = new GestureDetector(new MyGestureDetector1());
gestureListener1 = new View.OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
            return gestureDetector1.onTouchEvent(event);  
    }
};

transimg1.setOnTouchListener(gestureListener1);
class MyImageSwitcherFactory implements ViewFactory 
{
    public View makeView() 
    {

       ImageView imageView = new ImageView(getApplicationContext());
       imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
       imageView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
       return imageView;

    }
}

public static class AnimationFactory 
{
       public static Animation inFromRight() 
        {
           Animation inFromLeft = new TranslateAnimation
           (
                   Animation.RELATIVE_TO_PARENT,1.0f,Animation.RELATIVE_TO_PARENT,0.0f,
                   Animation.RELATIVE_TO_PARENT,0.0f,Animation.RELATIVE_TO_PARENT,0.0f
           );
           inFromLeft.setDuration(250);
           inFromLeft.setInterpolator(new AccelerateInterpolator());
           return inFromLeft;
       }
       public static Animation outToLeft() 
       {
           Animation inFromLeft = new TranslateAnimation
           (
              Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  -1.0f,
              Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
           );
           inFromLeft.setDuration(250);
           inFromLeft.setInterpolator(new AccelerateInterpolator());
           return inFromLeft;
       }
}class MyGestureDetector1 extends SimpleOnGestureListener {
    @Override
      public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) 
      {
          try 
          {

                if((e1.getX()-e2.getX()>SWIPE_MIN_DISTANCE)) 
                {
                    gif.setVisibility(View.INVISIBLE);
                }
                else if(e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE)
                {
                    gif.setVisibility(View.VISIBLE);
                    gif.start();
                }
          }
          catch(Exception e)
          {
              Toast.makeText(getApplicationContext(), e.toString() + " MyGestureDetector2 count=" + exccount , Toast.LENGTH_SHORT).show();
          }
          return false;
      }

    @Override
    public boolean onDown(MotionEvent arg0)
    {
        return true;
    }
}

Here is a blog from Dustin Graham with more examples: http://developingandroid.blogspot.in/2009/09/implementing-swipe-gesture.html

Upvotes: 0

Related Questions