【问题标题】:Android page Curl animationAndroid页面卷曲动画
【发布时间】:2011-03-02 05:31:36
【问题描述】:
  1. 有没有一种简单的方法来制作卷曲翻页动画?卷曲动画是页面翻转的动画,包括滚动的页面上方和下方页面的阴影。
  2. 创建一次显示两页的“画廊”(就像一本书一样)的推荐方法是什么?

    是吗:

    1. 让适配器一次显示两个图像的线性布局? (它不会让我显示一个页面像一本书一样翻过另一个页面)
    2. 使用两页,以某种方式将一页放在另一页附近,然后何时制作动画 - 将接下来的两页移过来? 有什么更好的方法可以显示左页翻转右页?

【问题讨论】:

标签: android curl android-animation flip


【解决方案1】:

我正在本机画布中实现 2D 页面卷曲。检查我的答案:Implement page curl on android?

编辑:我实现的代码项目:http://code.google.com/p/android-page-curl/ EDIT2:链接更新

【讨论】:

  • 首先,感谢您提供指向 3đ 尝试的链接。 Switcher 很好,但它没有实现他们在 Apple 中所做的事情。你应该在 iBooks 中看到它才能理解。
  • @Meymann 这不是一个鳍状肢(这个项目的名字有点糟糕......)它是一个页面卷曲效果。项目徽标只是应用程序本身的屏幕截图。试试看。
  • 你知道吗?我把它收回。好吧,它仍然不是 Apple 提供的 Curl,但它非常令人印象深刻,是的,当 Apple 喜欢 curl 的价格是兼容性和大量时间时,我宁愿更改使用您的代码的要求。
  • 很高兴听到这个消息:D 我希望 curl 很快就会拥有它的适配器,以便它可以使用任何现有的 Android 视图。
  • 是的,我想现在应该是令人满意的。如果我等苹果卷发,我应该等很久。苹果确实在它上面投入了大量资金,所以我敢打赌它已经获得了专利。我不相信在 Android 中人们会很快做到这一点。毕竟,透明度和反射对于这么少的哇效果来说是很多工作。我想那些想做真正 3D 效果的人会使用 Unity 3D 之类的东西。
【解决方案2】:

我正在使用此代码。它真的非常适合任何人理解和使用。非常感谢Harism

GitHub Link for Page Curl Animation in android With OpenGL

【讨论】:

  • 嘿嗨,我也使用 harism 的代码,但是当尝试返回前一页时遇到了问题,索引不保持正确并且位图不会在右侧刷新索引。 stackoverflow.com/q/16772734/1503130,这是我创建的一个线程,请提供建议或想法。
【解决方案3】:

我以前没有在 android 上工作过,但在我看来,进行翻页式显示的最佳方法是将其绘制成三层。第一个是第一页的文本,第二个是下面的“页面”,第三个是下一页。如果您从后向前绘制它们,用户将看到的唯一内容将是第一页上的文本。

现在,一旦你有了它,你会想要根据你正在使用的任何控件制作某种卷曲/翻转动画。只需选择最适合您制作该动画的任何方法,但是当您这样做时,请让页面中不再存在的部分 alpha'd 出来。这将允许您查看下方页面的文本(好吧,我撒谎了。您也需要该文本背后的背景)。

此时的问题是您仍在同一空间上绘制文本两次,因此您需要将第一页的文本与其下方的动画混合。这样,超过 0 alpha 部分的文本将不可见。它不会随着动画弯曲,所以这可能仍然是一个问题,但取决于翻转的速度可能仍然很好。动画完成后,只需设置第一页 = 第二页,动画重置为纯白色,第二页 = 新的第二页。

阴影效果可以简单地通过在翻页动画后面部分 alpha 输出一些黑色来完成。在第二页上绘制(就像动画层已经在做的那样),瞧!

我相信您的两页问题可以使用非常相似的方法。祝你好运

【讨论】:

  • 谢谢,但我想您可能不了解有关 Android 和问题的一些事情: A. CURL 意味着滚动页面。在另一个页面上移动页面需要 2 个 Android 页面和一个简单的动画。 CURL 涉及带有扭曲、3D 和阴影的数学模型。 B. 在 Android 中,您应该以不同的路径和加速度对动画进行插值,以使阴影和页面同步。这几乎是不可能的。即使你成功了,表现也会很尴尬。谢谢 M.
  • Meymann:我认为你只是反驳了你的问题,并称做卷页的任务是不可能的。 Lunin 是对的,不过,完成页面卷曲的最佳方法是在画布控件上制作严格的 2D 动画(在大多数 Android 设备处理器上可以相当容易地完成)。这可以使用计时器进行动画处理。当然,它可以使用 OpenGL 完成,但近一半的 Android 设备要么在没有硬件加速的情况下运行,要么在低于标准的 GPU 上运行。 3D 是一个糟糕的实现选择。一个简单的 2D 版本(当然还有一些渐变阴影)就可以满足要求。
  • 再次重申:“卷曲”是翻页的行为。具有阴影效果的翻转,并使页面的尖端滚动(具有透明度,阴影 AND 3D)到较低的页面上。 iPhone OS 中的 CURL 是一个月研究和数学模型的成果。使用 Android,您可以将一页移到另一页上。着色意味着另一个完美同步的图层(另一个问题),没有办法仅使用 2D 图形来 3D 滚动视图。
  • scuse the necro - 有没有办法抓取每一页并使用图像而不是实际页面?
【解决方案4】:

这是 3d 动画项目(基于 OpenGL 2.0) - http://anettosoftware.co.uk/npc.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多