android蜂窝中的弹出/覆盖屏幕

时间:2011-06-09 06:18:47

标签: android google-maps popup overlay android-3.0-honeycomb

我想在android地图应用程序(下图)中实现像Places一样的弹出/覆盖屏幕(我更感兴趣的是如何在屏幕的右侧/左侧放置该屏幕)。我可以创建一个活动并使用Dialog主题,这主要解决了我的问题,但它放在屏幕的中心。有人会更好地了解如何创建弹出/覆盖屏幕,如非地图应用程序中的位置并放置在屏幕的顶部/右侧?我猜他们是用地图叠加来做的。

Places in map

1 个答案:

答案 0 :(得分:4)

嗯,这就是我做的...我使用FrameLayout覆盖一个LinearLayout,我可以在其中填充一个View。这是我的代码的摘录:

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>

然后在我的代码中的某个按钮上,我只是将一个View(在你的情况下它可以只是对话框的内容)添加到overlay_pane LinearLayout。

Java示例:

ViewGroup container = findViewById(R.id.overlay_pane);
container.setVisibility(View.VISIBLE);
container.addView(some_view_you_inflated);

但是这个膨胀的视图将具有以下背景: @ drawable / dialog_full_holo_light ,以获得像Honeycomb风格这样漂亮的边框效果。

您可以在以下文件夹中的SDK中找到可绘制的背景

  

your_SDK_dir /平台/机器人-12 /数据/ RES /抽拉-HDPI / dialog_full_holo_light.9.png

所以只需将其复制到您的drawable中。

注意:您也可以使用dialog_full_holo_dark或任何自定义背景来获得相同的效果。

我希望有所帮助:)如果我在任何时候都不清楚,请告诉我

注意:您可以仅使用带有match_parent的LinearLayout而不是使用片段,而不是使用片段,而是使用layout_width和layout_height。然后你会用“背景”UI填充那个LinearLayout(在问题的例子中......那就是地图)