AlertDialog擁有比Dialog更強(qiáng)大的設(shè)置和樣式可供我們選擇:
多功能設(shè)置:
new AlertDialog.Builder(this)
.setTitle("")
.setCancelable(true)
.setIcon(R.color.black_overlay)
.setItems(R.layout.change_them1,null)
.setMessage("msg")
.setSingleChoiceItems()
.setMultiChoiceItems()
.setPositiveButton()
.setNegativeButton()
.setView()
.show();多種樣式可選:
AlertDialog.THEME_TRADITIONAL --- 兩個(gè)均分按鈕 黑背景 iteme間有分割線(xiàn)
AlertDialog.THEME_HOLO_LIGHT --- 兩個(gè)均分按鈕 白背景 iteme間有分割線(xiàn)
AlertDialog.THEME_TRADITIONAL --- 兩個(gè)均分按鈕 透明內(nèi)(類(lèi)似與黑內(nèi)) iteme間有分割線(xiàn)
AlertDialog.THEME_DEVICE_DEFAULT_DARK --- 兩個(gè)靠右邊的按鈕 iteme間無(wú)分割線(xiàn) 白色字
AlertDialog.THEME_DEVICE_DEFAULT_LIGHT --- 兩個(gè)靠右邊的按鈕 iteme間無(wú)分割線(xiàn) 黑色字
使用例子:
AlertDialog alertDialog = new AlertDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_DARK)
.setPositiveButton("確定", null)
.setNegativeButton("取消", null)
//.setItems(new String[] { "11", "22" },null)
//.setTitle("")
.setMultiChoiceItems(new String[] { "11", "22" },new boolean[]{true,false},null)
.create();
alertDialog.show();
這里要注意:
Dialog儡首、AlertDialog盈罐、button等的樣式栈暇,會(huì)受到該Activity(或application)中的theme影響刷晋,在不同的theme下鞋喇,dialog的樣式也是不同的步做,如:在android:Theme.Light和=@android:style/Theme.Holo.Light下晌杰,dialog呈現(xiàn)不同的背景色和不同的PositiveButton按鈕樣式铸磅,雖然在Builder(this,theme)中AlertDialog.THEME_TRADITIONAL 也能改變缀遍,但二者改變后的效果還是有差別的慕匠。
APP在Android中的界面展示從上到下的情況:
狀態(tài)欄--titleBar(apk名)--ActionBar/ToolBar--ActivityView,所以theme若是Theme.Light.NoTitleBar則去除apk名稱(chēng)那一條,而Theme.Light.NoTitleBar.FullScreen則是連狀態(tài)欄也消失的展示域醇;
Android系統(tǒng)自帶樣式(android:theme):
Theme.Dialog : Activity顯示為對(duì)話(huà)框模式
Theme.NoTitleBar : 不顯示應(yīng)'A8程序標(biāo)題欄
Theme.NoTitleBar.Fullscreen : 不顯示應(yīng)用程序標(biāo)題欄台谊,并全屏
Theme.Light :背景為白色
Theme.Light.NoTitleBar : 白色背景并無(wú)標(biāo)題欄
Theme.Light.NoTitleBar.Fullscreen : 白色背景,無(wú)標(biāo)題欄譬挚,全屏
Theme.Black : 背景黑色
Theme.Black.NoTitleBar : 黑色背景并無(wú)標(biāo)題欄
Theme.Black.NoTitleBar.Fullscreen : 黑色背景锅铅,無(wú)標(biāo)題欄,全屏
Theme.Wallpaper : 用系統(tǒng)桌面為應(yīng)用程序背景
Theme.Wallpaper.NoTitleBar : 用系統(tǒng)桌面為應(yīng)用程序背景减宣,且無(wú)標(biāo)題欄
Theme.Wallpaper.NoTitleBar.Fullscreen : 用系統(tǒng)桌面為應(yīng)用程序背景盐须,無(wú)標(biāo)題欄,全屏
Theme.Translucent : 透明背景
Theme.Translucent.NoTitleBar : 透明色背景并無(wú)標(biāo)題
Theme.Translucent.NoTitleBar.Fullscreen : 透明背景并無(wú)梇題漆腌,全屏
Theme.Panel : 面板風(fēng)格顯示
Theme.Light.Panel : 平板風(fēng)格顯示
android4.0之后出來(lái)的holo:
Theme Holo全屏顯示樣式贼邓,默認(rèn)是黑背景,
Theme_Holo_Dialog 將activity顯示成對(duì)話(huà)框的樣式
Theme_Holo_Dialog_MinWidth 將activkty顯示成對(duì)話(huà)框的樣式闷尿,顯示最小狀'80?時(shí)塑径,
Theme_Holo_DialogWhenLarge 將activity顯示成對(duì)話(huà)框的樣式,顯示最大狀態(tài)Theme_Holo_DialogWhenLarge_NoActionBar 將activity顯示成對(duì)話(huà)框的樣式填具,且沒(méi)有action bar
Theme_Holo_Dialog_NoActionBar 將activity顯示成對(duì)話(huà)框的樣式统舀,且沒(méi)有action bar,默認(rèn)狀態(tài)
Theme_Holo_Dialog_NoActionBar_MinWidth 將activity顯示成對(duì)話(huà)框的樣式劳景,且沒(méi)有action bar绑咱,顯示最小狀憮時(shí)
Theme_Holo_NoActionBar 默認(rèn)?%:A?態(tài)下,沒(méi)有action bar的樣式枢泰。
Theme_Holo_NoActionBar_Fullscreen 默??狀態(tài)下描融,沒(méi)有action bar且全屏的樣式
Theme_Holo_Wallpaper 使用墻紙做為樣式背景,默認(rèn)狀態(tài)下
Theme_Holo_Wallpaper_NoActionBar 使用墻紙做為樣式背景衡蚂,且沒(méi)有action bar窿克。
Theme_Holo_Panel 默認(rèn)將一%G4??activity顯示成一個(gè)對(duì)話(huà)框樣式骏庸,區(qū)別于??話(huà)框,這個(gè)沒(méi)有外邊框年叮,沒(méi)有任何樣式元素只有一渪空的矩形框具被。
Theme_Holo_Light 默認(rèn)樣式,區(qū)別于黓背景只损,這個(gè)屬于亮背景Theme_Holo_Light_Dialog 默??將一個(gè)activity顯示成一個(gè)對(duì)話(huà)框樣式一姿,區(qū)別于黑背景,這個(gè)屬于亮背'99?
Theme_holo_Light_xxx其他和默認(rèn)樣式一樣跃惫,區(qū)別于這是亮背景