Android Activity.setContentView(),平滑过渡?

时间:2010-10-21 18:11:03

标签: user-interface android animation

我正在开发我的第一款Android游戏,而且我在设置UI方面遇到了一些困难。我花了几个小时在谷歌上搜索没有运气,我可能只是在寻找错误的东西。

我有两种不同的XML布局资源,其中每个布局只包含一个SurfaceView子类。当我调用activity.setContentView(R.layout.second_layout)从第一个布局转换到第二个布局时,有一个明显的时间段,在这两个布局之间显示黑屏(沿着顶部有一个小白条)视图。

我尝试过各种各样的事情;在运行时手动构建第二个视图(即不使用布局XML文件),在activity.setContentView(R.layout.second_layout)之后调用activity.overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out)和尝试在视图加载之前渲染到画布(原来画布不可用)。

我没有看到其他游戏(或应用程序)遇到此问题所以我认为有一个相当简单的解决方案。

如果您需要有关我的特定情况的更多信息以便提供帮助,请告诉我缺少哪些信息。任何帮助都会受到很大的赞赏。

1 个答案:

答案 0 :(得分:1)

更新:我的答案是在2010年写的。从那以后Fragments已成为常态,特别是因为片段嵌套成为可能,支持库允许此功能用于向后兼容的时尚。因此,您可以使用一个Activity并在该Activity的视图层次结构中推送和弹出片段,而不是转换到新的Activity来执行新的“用户任务”。动画也可以作为片段交易的一部分来执行(例如Fragment transaction animation: slide in and slide out)。

在发布这个问题后不久,这变得非常明显,但是我想我应该回到这里并向其他人说清楚。 在开发Android时,活动是积极的方式。不要因为单独的活动过渡看起来太微小这一事实而被推迟,Android的基础是built around the idea of an Activity