2010-04-15 13 views
3

我在图库视图中有四个图像。当我们从左到右或从右到左滑动时,画廊视图会移动所有图像,即如果从第一个图像从左向右滑动,则会移动到所有四个图像。将Gallery视图移动到Android中的一次滑动中的下一个图像?

我想要的是,当我滑动它应该只移动到下一个图像。有人能告诉我这是怎么可能的?

希望很快得到答复。

问候 苏尼尔

+0

难道你要扩展基本画廊?如果是这样,你可以发布你写的onFling覆盖? – TheDeuce 2011-01-25 00:09:29

+0

重复的http://stackoverflow.com/questions/4311854/how-can-i-limit-fling-in-android-gallery-to-just-one-item-per-fling – 2012-07-22 10:41:32

回答

3

您可以实现这不使用库:把一个ImageView的你的布局,并使用GestureListener检测挥笔。在左侧或右侧滑动,在适当的方向上循环访问imageList,并在ImageView中设置图像。设置图像时,播放适当的幻灯片左侧或幻灯片右侧的动画。

+0

我发现操纵默认行为画廊小部件不平凡;这只是一种选择。 – Samuh 2010-04-15 12:35:55

4

我通过创建CustomGallery类来实现此目的,该类扩展了Gallery。然后我重写了GalleryonFling方法。在onFling方法中,只需返回false。这将导致图库仅在调用onFling时才移动到下一张图像。

+0

精彩,如此简单。非常感谢。 – ernazm 2011-09-05 16:21:42

+0

这样做的不足之处在于它不够流畅 - 当投掷动画时,动画就在那里,但照片返回到当前照片而不是下一张照片。 – 2012-07-22 10:37:55

0

使用ViewFlipper概念与概念一扔......尝试使用此评论

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) 
{ 
    if (Math.abs(e1.getY() - e2.getY()) > 50) 
     return false; 

    if(e1.getX() - e2.getX() > 10 && Math.abs(velocityX) > 10) 
    { 
     vf.showNext(); 
    } 
    else if (e2.getX() - e1.getX() > 10 && Math.abs(velocityX) > 10) 
    { 
     vf.showPrevious(); 
    } 

    return false; 
} 
相关问题