我正在制作一个类似测验的游戏,用户在被允许进入下一个问题之前回答每个问题。
我的应用的特征:
- 每个会话将有大约 10-30 个屏幕。
- 一般来说,屏幕在布局上是异构的结构,但它们可以是分为5-6种类型。
- 用户与每个屏幕交互的预期时间为 10-30秒
- 用户进入下一个屏幕后,不需要前一个再也回不去了)
- 我想有一个漂亮的滑行从一个屏幕到下一个屏幕
我正在考虑的实现:
- 为每个启动一个新
Activity
"转发"样式的屏幕,即开始下一个屏幕,然后完成当前版本。 - 事先加载所有视图,然后使用
ViewAnimator
看起来我目前的解决方案都不好。你能帮我找到一个在内存消耗、电池消耗和响应能力方面都很好的解决方案吗?
谢谢。
好的,下面是我所做的。原来我手动设置了动画
onCreate() {
mAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_in_right);
mViewPool = new View[] { /* A few views for re-using, each of different type */ };
}
proceed() {
nextView = getView(type);
mFrame.removeAllChilds();
mFrame.addView(nextView);
nextView.startAnimation(mAnimation);
}
getView(int type) {
View view = mViewPool[type];
// reset some subviews if neccessary
return view;
}
mFrame
是你认为合适的任何观点组,不一定是ViewAnimator
。我的碰巧是ScrollView
.
如果您发现此方法存在任何潜在问题,请告诉我。非常感谢。