私はこのコードがあなたを助けると思います。この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;
}
}
ダスティングラハムのブログに他の例があります:http://developingandroid.blogspot.in/2009/09/implementing-swipe-gesture.html