如何在对话框和活动之上弹出幻灯片?

时间:2012-05-24 14:33:40

标签: android android-layout android-view android-dialog

我想实现一个弹出窗口,该弹出窗口应该在活动的顶部滑动,并且可以在该活动之上的任何对话框之上。此外,当弹出窗口在屏幕上时,后台的活动和对话框仍然应该是交互式的(即它们应该对触摸做出反应,并且所有按钮等应该仍然有效)。经过x倍的时间后,弹出窗口应滑出屏幕。

我提出了以下想法,但所有这些想法都有某种缺点:

1. 自定义吐司 虽然吐司总是会出现在活动和对话框之上,但我不认为它可以滑入并滑出。

2。自定义对话框 对话框也会出现在活动和对话框之上,但问题在于,当我的自定义对话框出现在屏幕上时,活动和之前打开的所有对话框将不再是交互式的(即它们不会触及)。

第3。活动中的ImageView 这种方法的问题很明显:它总是出现在对话框后面。

任何帮助都将受到高度赞赏。谢谢!

2 个答案:

答案 0 :(得分:1)

以下是您的选择:

1)与Toast一起去处理你的动画进/出

2)继续对话并牺牲触摸事件

3)这不可行

我甚至无法想到如何使用自定义视图执行此操作,它太复杂而且不是Google UX设计中推荐的内容。

也许为了解决问题的另一个解决方案的灵感,请尝试此处:http://developer.android.com/design/index.html

要问的真正问题是,为什么要这个工具提示?你想要实现什么目标?有了这些答案,您可以寻找更多* Android-esq'溶液

答案 1 :(得分:0)

您确实需要View子类,而不是Dialog。使用addView()添加视图,removeView()删除它。

通过布局/样式,您可以使其看起来像一个对话框。

您可以使用视图动画来实现幻灯片放入/缩小效果。

Animation slideIn = new TranslateAnimation (windowWidth, 0, 0, 0);
slideIn.setDuration (400);
slideIn.setInterpolator(new LinearInterpolator());
dialogView.startAnimation(slideIn);

Animation slideOut = new TranslateAnimation (0, windowWidth, 0, 0);
slideOut.setDuration (400);
slideOut.setInterpolator(new LinearInterpolator());
dialogView.startAnimation(slideOut);

并使用AnimationListener()onAnimationEnd()在滑出后删除视图。

您需要调整TranslateAnimation的x / y参数以达到您想要的效果,假设您希望对话框以x和y轴为中心...