java - 如何实现 Google Play 图书中使用的卷页类型?

标签 java android animation opengl-es

我一直在寻找一种合适的方法来模拟在 iOS 应用程序中使用的翻页/ curl 类型,但在 Android 应用程序中。我在 Android 上看到的最接近的东西是 Google Play Books 应用程序。他们是否使用了我没见过的 SDK 的某些部分?我是否有机会获得类似的实现?

我看到的大多数示例都是使用某种基于 OpenGL 的 RenderView 构建的。这可能会奏效,但我必须确保屏幕不会白白渲染,因为我不想使用太多电量。另外,在处理非 pow2 的纹理时,我有点害怕使用 OpenGL。

最好的问候, 卡勒

最佳答案

你必须使用 OpenGl 在 Android 中制作这样的效果并且必须使用 以下常见的正弦曲线图方程:-

y=Asin(2π/λ*x)

在哪里,

A = 振幅(即我们想要的 curl 高度)。

λ = 波长(即我们想要的 curl 的长度)。

x = X 轴变量,它会随着您移动页面而改变。

您必须在 SurfaceView 上绘制 3 个页面,即“LeftPage”、“CenterPage”和“RightPage”,“CenterPage”始终可见并负责“右 curl ”动画,而“LeftPage”负责“左 curl ”动画和“RightPage”只是保持静态。 要检测手势,请使用默认的 GestureDetector 类。

您可以从 here 下载示例.

关于java - 如何实现 Google Play 图书中使用的卷页类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18309723/

相关文章:

android - 改变 ViewPager 和 setCurrentItem 的过渡速度

android - 在 onSaveInstanceState 之后无法使用 BottomsheetDialogFragment 执行此操作吗?

java - 如何将第一组出现与正则表达式匹配?

java - 部分字段更新 REST API

即使授予位置权限,Android 11 wifi SSID 在后台也是未知的

c# - 如何仅使用 C# 代码(在 WPF 窗口内)在图像对象上创建旋转动画

javascript - 如何在不失去可扩展性的情况下为网页(HTML/JS)制作动画?

java - Elastic Search 基于搜索字符串排序

java - |在 java string.split() 方法中无法识别

iphone - 如何为我的 View 调整大小设置动画?