2011-06-09 43 views
4

我想在地圖上實現像地點(我更感興趣的是如何將該屏幕放置在屏幕的右側/左側)的彈出/覆蓋屏幕。應用程序(下圖)。我可以創建一個活動並使用對話框主題,這主要解決我的問題,但它放置在屏幕中心。有人有什麼更好的想法,我怎麼能創建一個彈出式/覆蓋屏幕像非地圖應用程序中的地方,並放置在屏幕的頂部/右側?我猜他們是用地圖疊加來做的。在android蜂巢中的彈出/覆蓋屏幕

Places in map

回答

4

好,這裏就是我所做的......我用的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(在問題的例子中,這將是地圖)

+1

還有一件事..你可以通過使用android:layout_gravity屬性來控制疊加層的出現位置你膨脹的觀點 – kwazi 2011-06-09 16:02:38

+0

感謝這個想法(我試圖從另一個角度去做),當我有一點點時間時,我會嘗試它。我需要將覆蓋層放在tabhost上,但希望不會搞砸任何東西。 – Alex 2011-06-10 09:21:45

+0

XML中的片段是做什麼的?我有點新的碎片,我很困惑,因爲你沒有發佈Java的com.some.location.to.fragment – CACuzcatlan 2011-07-11 17:44:00