当用户在屏幕上滑动手指时,如何使我的页面滑动?
Posted
技术标签:
【中文标题】当用户在屏幕上滑动手指时,如何使我的页面滑动?【英文标题】:How can I make my page slide as the user slides finger on the screen? 【发布时间】:2011-02-11 11:19:43 【问题描述】:任何示例代码?
我只需要与我的 android g-phone 主屏幕上相同的感觉。屏幕随着手指的移动而移动(也包括弹性效果)。
【问题讨论】:
你能做动画吗?我正在寻找这样的东西。我知道它可能与花哨的计算、感知手势等有关。只是想知道是否有任何简单的方法,比如使用 HorizontalScrollBar 并向其添加视图,然后设置一些参数并完成! @Maxood 你能做到吗..... 【参考方案1】:在 Warriorspoint 上查看此 tutorial 和 its follow up。他们解释了如何使用 ViewFlipper 平滑地动画从一个屏幕到另一个屏幕的过渡,然后在第二部分中如何使用触摸控制来做到这一点。请注意,这些是全屏转换,不会在现有页面上平移。对于平移,例如对于不适合屏幕的超大图像,请查看Android BigImage。根据您尝试执行的操作,这些操作可能有点过头了,但并不是 100% 清楚您想要实现的目标。
【讨论】:
这两种方法无法识别,因为可能没有提供动画。 vf.setAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out)); vf.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));此外,当我评论这两行并运行代码时......我只是得到切换效果而不是滑动效果。请解释 您是否按照步骤 4 并从 ApiDemos 导入动画?如果你注释掉这两行,你就会得到切换效果,因为这两行告诉它使用滑动效果...... 很好。我这样做并获得了滑动效果,但无法用手指按住页面,因为可以在主触摸屏上做到这一点。我如何在用手指拖动/滑动时按住页面?因为当页面进行到一半时,可以用手指按住它。谢谢 这可能有点复杂。您可以尝试结合这两个教程的技术:使用 BigImage 技术允许用户在屏幕上滚动,但如果一旦他们移过某个点(即,将其移出屏幕 70%),则假设这是页面更改并使用 ViewFlipper。我不确定这是否可行……您必须进行试验或等待另一个答案! 我如何计算一个屏幕/页面已经移过了某个点(即移出了屏幕 70%)?【参考方案2】:使用 SwipeView 类
http://jasonfry.co.uk/?id=23
https://github.com/fry15/uk.co.jasonfry.android.tools
【讨论】:
【参考方案3】:ViewPager。事后,这似乎更完整的是addressed:
无论您是刚开始进行 Android 应用开发还是 手艺的老手,可能不久之后你就会需要 实现水平滚动的视图集。许多现有的 Android 应用程序已经使用这种 UI 模式,例如新的 Android 市场、谷歌文档和谷歌+。 ViewPager 将 实施。
【讨论】:
【参考方案4】:主屏幕由两层组成:
显示图像的背景(或工作区);该层滚动并以不同的滚动值绘制壁纸。工作区的行为或多或少类似于简化的水平布局
显示图标的屏幕(或 CellLayouts);该层由 3 个并排的 CellLayout 组成。 CellLayout 是一种自定义的类似网格的布局。
使用 VelocityTracker、Scroller 和常规 View.scroll 方法实现投掷。
【讨论】:
【参考方案5】:使用图库视图
【讨论】:
您确定画廊视图可以使用吗?我可以用手指将页面按住一半吗?【参考方案6】:您将需要手势检测器 - 考虑的类/接口是:
1. android.view.GestureDetector
2. android.view.GestureDetector.SimpleOnGestureListener
感兴趣的方法是onFling
。
现在,根据各个方向的 X、Y 和速度,您可以在相应位置“绘制视图”/“在活动或视图组的情况下重新定位嵌套视图”。
可以在任何游戏示例中找到如何重绘的示例,例如 Android 中的 LunarLander http://developer.android.com/resources/samples/LunarLander/src/com/example/android/lunarlander/LunarView.html
【讨论】:
【参考方案7】:我为我的应用程序做了这个,只是想我会分享我的解决方案。
Android Homescreen
【讨论】:
以上是关于当用户在屏幕上滑动手指时,如何使我的页面滑动?的主要内容,如果未能解决你的问题,请参考以下文章