2010-08-21 24 views
0

我想向我的場景添加一個新視圖,該視圖將包含將在我的應用程序的整個過程中以編程方式更改的內容。當它改變時,它需要在屏幕上彈出3秒(或點擊)然後消失。彈出式視圖(z-index?) - android

該視圖將根據其內容WRAP_CONTENT改變大小,但理想情況下,我希望它在屏幕上水平和垂直居中。

我被困在三個部分: 1)我應該使用什麼類型的視圖...我想的是相對的,但是我所有的玩法都沒有帶來好的結果,做 2)關於#1(嘗試相對視圖),我無法正確居中(嘗試使用param.leftMargin和param.topMargin具有不同的值,但無法讓它在不同分辨率的設備上工作 3)對於#1,我無法將它浮在屏幕上的其他所有東西上(需要類似z-index之類的東西)。

任何想法,代碼示例將是美好的。

TIA

回答

0

使用自定義對話框,即具有android:theme="@android:style/Theme.Dialog",爲類的LinearLayout,它會像

public class YourCustomDialog extends Dialog implements DialogInterface 

在那裏你可以實現你的什麼顯示自定義的邏輯。這樣的對話框在所有其他視圖之上是浮動和模態的,然後還可以選擇將背景設置爲模糊等。

這是我的自定義對話框的典型構造函數 - 佈局將在xml佈局文件中定義,在我的情況下是my_custom_dialog.xml:

public MyCustomDialog(Context context) { 
    super(context, android.R.style.Theme); 

    Window window = getWindow(); 
    window.requestFeature(Window.FEATURE_NO_TITLE); 
    window.setGravity(Gravity.BOTTOM); 
    window.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.empty)); 

    setContentView(R.layout.my_custom_dialog); 

    // actually not necessary as it's already the default value: 
    window.setLayout(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); 

    ... 
} 
+0

感謝您的快速響應。這將是我第一次創建自定義對話框。我會尋找一些關於如何去做的資源。爲了讓我開始,你能告訴我,我是否需要在res文件夾或子文件夾中包含任何新文件,或者只是在src內創建這個類? – Kyle 2010-08-21 16:31:18

+0

您可以在單獨的xml佈局文件中爲對話框本身定義佈局。然後使用setContentView將其分配給對話框,請參閱上面添加的代碼示例。 – 2010-08-21 16:38:32

+0

好吧,這是一個很好的開始。在這個自定義佈局文件中包含android:theme =「@ android:style/Theme.Dialog」嗎?還是在main.xml文件中進行(在新的線性佈局中)? – Kyle 2010-08-21 16:44:30