2010-11-19 56 views

回答

2

你的例子截圖顯示了一個大部分未觸動的股票Android 2.2啓動器。既然它是開源的,你可以看看它是如何完成的。 Here's the layout file it uses.

請注意在底部的RelativeLayout包含三個「熱門座位」按鈕。他們每個人都使用自定義樣式來獲得外觀,這些樣式被定義爲here.

0

你在圖片中顯示的是HTC Sense啓動器。它是一個附加組件,不屬於核心Android操作系統。

順便說一下,很容易做到這樣的自定義透明按鈕。讓我知道你是否需要這方面的幫助。

更新:

用這個例子來創建一個自定義對話框,這不是模式和浮動和透明。

dialog = new Dialog(activityRequestingProgressDialog); 
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
dialog.setContentView(R.layout.progress_upload); 
progressBar = (ProgressBar) dialog.findViewById(R.id.progressBar); 
progressText = (TextView) dialog.findViewById(R.id.progressText); 
progressText.setText("0 %"); 
progressText.setTextSize(18); 
Button buttonCancel = (Button) dialog.findViewById(R.id.btnCancel); 
buttonCancel.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View view) { 
     cancelProgressDialog(); 
     } 
}); 
Window window = dialog.getWindow(); 
window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, 
        WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL); 
window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); 
window.setGravity(Gravity.BOTTOM); 
dialog.show(); 

,對話框佈局是:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/progressDialog" 
      android:orientation="vertical" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_centerVertical="true"> 

<TextView android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:textSize="18sp" 
      android:padding="10dp" 
      android:text="@string/progress_title"/> 

<LinearLayout android:id="@+id/progressDialog" 
       android:orientation="horizontal" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:padding="10dp" 
       android:layout_centerVertical="true"> 

    <ProgressBar android:id="@+id/progressBar" 
       android:layout_width="150dp" 
       android:layout_height="34dp" 
       android:paddingRight="10dp" 
       android:max="100" 
       android:progress="0" 
       android:fadingEdge="vertical" 
       style="?android:attr/progressBarStyleHorizontal"/> 

    <TextView android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:id="@+id/progressText" 
       android:paddingRight="10dp"/> 

    <Button android:id="@+id/btnCancel" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      android:layout_marginBottom="10dip" 
      android:text="@string/button_options_text" 
      android:textColor="@color/button_text_grey" 
      android:drawableTop="@drawable/button_options" 
      android:drawablePadding="-5dip" 
      android:background="@null"/> 

</LinearLayout> 
</LinearLayout> 

這是一個進步與進度條,文本和取消按鈕對話框的例子。您可以輕鬆將其更改爲三個按鈕。請注意,按鈕對於圖標和文字是透明的。

+3

這不是感覺啓動器,它在光盤上沒有感覺 – 2010-11-19 13:27:10

+0

哦,是的,我知道他們是啓動器按鈕,但我只是想知道是否有類似於SDK中這些工作的東西。這是關於按鈕的風格以及它們的工作原理。目前,在我的應用程序中,我有底部的選項卡,但它們看起來很糟糕,並且被分成了選項卡。我正在尋找的東西就像啓動器那樣可以像標籤一樣操作。選項卡永遠不會消失,它們總是在屏幕上,意圖改變而不必刷新屏幕。我正在尋找這種導航。有什麼內置的,可以允許嗎? – NotACleverMan 2010-11-19 13:30:13

+0

嘗試非模態的自定義對話框。它漂浮在上方,但不會阻止活動。我沒有經驗,如果在同一個應用程序中將Activity替換爲不同的Activity,會發生什麼情況。我編輯帖子來展示一個例子。 – 2010-11-19 14:01:08

相關問題