在android蜂巢中的弹出/覆盖屏幕
问题描述:
我想在地图上实现像地点(我更感兴趣的是如何将该屏幕放置在屏幕的右侧/左侧)的弹出/覆盖屏幕。应用程序(下图)。我可以创建一个活动并使用对话框主题,这主要解决我的问题,但它放置在屏幕中心。有人有什么更好的想法,我怎么能创建一个弹出式/覆盖屏幕像非地图应用程序中的地方,并放置在屏幕的顶部/右侧?我猜他们是用地图叠加来做的。在android蜂巢中的弹出/覆盖屏幕
答
好,这里就是我所做的......我用的FrameLayout叠加一个的LinearLayout,我可以用一个视图填充它。下面是我的代码的摘录:
XML:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<fragment class="com.some.location.to.fragment"
android:id="@+id/fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:id="@+id/overlay_pane"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
android:background="@color/transparent">
</LinearLayout>
</FrameLayout>
然后在我的一些按钮的代码,我想补充一个视图(在你的情况下,它可以只是对话框的内容)到overlay_pane的LinearLayout 。
Java示例:
ViewGroup container = findViewById(R.id.overlay_pane);
container.setVisibility(View.VISIBLE);
container.addView(some_view_you_inflated);
但这种膨胀的观点将有以下背景:@绘制/ dialog_full_holo_light对于像蜂窝式的一个很好的边框效果。
你可以找到你的SDK的背景绘制在以下文件夹
your_SDK_dir /平台/ Android的12 /数据/ RES /提拉 - 华电国际/ dialog_full_holo_light.9.png
所以把它复制到你的drawable中。
注意:您也可以使用dialog_full_holo_dark或任何自定义背景来达到同样的效果。
我希望帮助:)让我知道,如果我是不清楚的任何一点
注:不要使用片段,你可以仅仅使用LinearLayout中与match_parent两个layout_width和layout_height。然后你会用“背景”UI填充LinearLayout(在问题的例子中,这将是地图)
还有一件事..你可以通过使用android:layout_gravity属性来控制叠加层的出现位置你膨胀的观点 – kwazi 2011-06-09 16:02:38
感谢这个想法(我试图从另一个角度去做),当我有一点点时间时,我会尝试它。我需要将覆盖层放在tabhost上,但希望不会搞砸任何东西。 – Alex 2011-06-10 09:21:45
XML中的片段是做什么的?我有点新的碎片,我很困惑,因为你没有发布Java的com.some.location.to.fragment – CACuzcatlan 2011-07-11 17:44:00