1

我在一个数组中存储了两个图像,图像出现了,但是我试图实现的是当用户向右滑动屏幕时出现第二个图像,并且当向左滑动时第一张图片。我很新的android应用程序开发一些帮助将不胜感激。目前发生的所有事情都是当用户点击图像时,它会转到第二个图像,并且就是这样。左右滑动图像android

我也加入了我的代码:

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; 
    } 

});

回答

0

我觉得这个代码将有助于you.In这transimg1是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; 
    } 
} 

这里是Dustin Graham一个博客有更多的例子:http://developingandroid.blogspot.in/2009/09/implementing-swipe-gesture.html