2011-03-04 31 views
6

我想重新创建类似于Swing GlassPane的功能,以便在用户通常在“以下”使用应用程序时能够显示动画。我不能简单地创建一个单独的布局并将其附加到每个活动,因为动画状态在切换活动时会丢失。 有没有一种方法可以持续查看Android应用程序的所有活动?Android - 显示所有活动的持久视图

谢谢。

回答

1

没有它没有。每个活动都在其自己的线程中运行,并且设计应该是可独立运行的。

但是,您可以将动画状态保存到数据库或sharedPreferences中,并在新活动中启动它。

你也可以做的是使用微调或其他控制,而不是单独的活动。然后你可以有一个持久的观点。

+0

是的,我想过使用对话框或类似,但它总是需要被连接到一个特定的活动,所以切换到另一个活动时,它是隐藏的。 – janin 2011-03-04 16:37:21

+0

我不知道这是否属实 - 看看Zedge应用程序。不知道他们是如何做的 - 但他们显示的持续导航在活动之间进行动画处理时不会被换出。如果我弄清楚它是如何完成的,我会在这里发布。编辑:他们的新应用程序不再出现这样做;请听我的话;) – 2011-05-03 18:22:41

+0

你确定,他们是在不同的活动之间进行动画制作吗?在许多情况下,微调者可能看起来像使用了多项活动。 – Chris 2011-05-04 11:37:56

0

为什么不在TabActivity中思考?

嗨!我之前用TabActivity做这件事,从来没有一个唯一的活动,总是与我开始许多活动,让他们的窗户和设置为我的TabActivity窗口的装饰视图...我没有测试下面的代码,因为是一个想法,但也许最近(当我将在家里)我会写一个例子...

所以,我的想法... TabActivity是由TabWidget和FrameLayout组成的,其中活动的窗口被分配。

TabWidget可以是任何视图,因此,您可以在这里放置动画视图。

最困难的事情是,如果您从TabActivity的孩子开始活动,那么新活动将位于TabActivity之上。为了覆盖此行为,TabActivity必须知道嵌套活动何时想要启动另一个活动。发生这种情况时,TabActivity必须清除装饰视图(使用旧窗口活动)并放置新装饰视图。事情是这样的:在儿童活动

,推出新的活动,当我们点击一​​个按钮:现在 ...上点击收听...

((MyTabActivity)getParent()).createNewActivity("NewActivity", NewActivity.class); 

,we're称TabActivity那它必须开始新的活动,得到了新的活动装饰观点,把TabActivity装饰视图内这一观点......所以,在createNewActivity将这样执行的东西:

public void createNewActivity(String activityId, Class<?> class1) { 
    Intent intent = new Intent(getIntent().getAction()).setClass(MyTabActivity.this, class1); 
    Window wList = getLocalActivityManager().startActivity(activityId, intent); 
    getWindow().setContentView(wList.getDecorView()); 
} 

希望你能理解我。

我会写一个例子后

相关问题