【问题标题】:Moving the Gallery view to the next image on one swipe in Android?在 Android 中通过一次滑动将图库视图移动到下一张图片?
【发布时间】:2012-10-04 04:13:47
【问题描述】:

我在图库视图中有四张图片。当我们从左向右或从右向左滑动时,图库视图会移动所有图像,即如果我从第一张图像从左向右滑动,它将移动到所有四个图像。

我想要的是当我滑动时它应该只移动到下一张图片。谁能告诉我这怎么可能?

希望尽快得到答复。

问候 苏尼尔

【问题讨论】:

标签: android image gallery swipe


【解决方案1】:

我通过创建一个扩展GalleryCustomGallery 类来实现这一点。然后我覆盖了GalleryonFling 方法。在 onFling 方法中,只需返回 false。这将导致画廊仅在调用onFling 时移动到下一张图片。

【讨论】:

  • 精彩,如此简单。非常感谢。
  • 这样做的缺点是感觉不流畅 - 投掷时,动画在那里但照片返回到当前照片而不是下一张。
【解决方案2】:

您可以在不使用 Gallery 的情况下实现这一点:在您的 Layout 上放置一个 ImageView 并使用 GestureListener 检测 Swipe。在向左或向右滑动时,以适当的方向循环通过 imageList 并在 ImageView 中设置图像。设置图片时,播放相应的左滑或右滑动画。

【讨论】:

  • 我发现操纵 Gallery 小部件的默认行为并非易事;这只是一种选择。
【解决方案3】:

ViewFlipper 概念与fling 概念结合使用...尝试使用此评论

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    • 2019-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多