2012-09-17 40 views
2

我想樣式化Android對話框的標題樣式。這是一個標準的安卓對話框看起來像enter image description here設計Android對話框的標題樣式

我想要的就是這樣,我photoshopped(風格背景的頭和其他文字顏色)。 enter image description here

我知道可以將主題作爲參數傳遞給Dialog() - 構造函數。但我不知道xml樣式的元素是怎麼樣的。

回答

0

您應該可以使用setCustomTitle(View)。我從來沒有使用過它,但它應該是這樣的:

TextView title = new TextView(context); 
title.setBackgroundColor(0xFFFF0000); 
title.setTextColor(0xFFFFFFFF); 
title.setLayoutParams(/* LayoutParams with MATCH_PARENT width and WRAP_CONTENT height */); 
title.setPadding(/* Some padding values */); 
yourDialogBuilder.setCustomTitle(title); 

在逐字複製現有的Android對話框標題的佈局方面,我不知道這些值的參數。你可能不得不亂搞和/或谷歌找到它們。 (字體本身是很明顯的Roboto爲4.0+和Droid的東西少。)

+0

但該方法不適用於定期對話(不是AlarmDialog) – Toni4780

+0

@ Toni4780存在正。正如[Android文檔](http://developer.android.com/guide/topics/ui/dialogs.html)所說:「* Dialog'類是創建對話框的基類,但是,您通常不應該直接實例化一個'Dialog'。*「 – Eric

0

它很簡單......

所有你所要做的就是創建一個XML佈局,爲PIC,您已上傳並然後只是簡單的用剛剛創建的XML文件膨脹對話框.....

我只是給你一個示例代碼,那麼你就可以輕鬆地跟蹤

private View mView; 
private Dialog mDialog; 
private LayoutInflater mInflater; 

現在創建一個功能: -

private void showCustomDialog() { 
    mInflater = (LayoutInflater) getBaseContext().getSystemService(
      LAYOUT_INFLATER_SERVICE); 
    ContextThemeWrapper mTheme = new ContextThemeWrapper(this, 
      R.style.YOUR_STYE); 

    mView = mInflater.inflate(R.layout.YOUR_XML_LAYOUT_FILE, null); 
    // mDialog = new Dialog(this,0); // context, theme 

    mDialog = new Dialog(mTheme); 
    mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    mDialog.setContentView(this.mView); 
    mDialog.show(); 

    TextViiew someText = (TextView) mView.findViewById(R.id.textViewID); 
    // do some thing with the text view or any other view 

} 

最後確保你有風格: -

<style name="YOUR_STYLE"> 
    <item name="android:windowBackground">@android:color/transparent</item> 
    <item name="android:windowFrame">@null</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowIsFloating">false</item> 
    <item name="android:windowIsTranslucent">false</item> 
    <item name="android:windowContentOverlay">@android:color/transparent</item> 
    <item name="android:backgroundDimEnabled">false</item> 
</style> 

就是這樣....你完成......只是調用這個函數在任何你想顯示自定義對話框... 。

希望的解釋是有用的....