dialog有兩種形式的,乙個是dialog及其子類,還有一種是activity的dialog顯示方式。
不管怎樣,在自定義dialog的時候,如果不做一些處理,都會出現黑色背景邊框,這個問題動不動就出來困擾我一下,於是打算總結下。
一、dialog及其子類
自定義的話,有幾種不同形式: 1>.alertdialog.builder的setview方法。
1234567
if(mdialog
==null
)mdialog
.setview
(mview,0
,0,0
,0);// 主要是這樣話,邊界為0,所以就沒有黑色邊框啦
mdialog
.show
();
2>.dialog對應的window(父類視窗)的setcontentview方式
1234567
mdialog=new
alertdialog
.builder
(mcontext
).create
();mdialog
.show
();mdialog
.setcancelable
(mcancelable
);window
=mdialog
.getwindow
();try
{window
.setcontentview(r
.layout
.mydialog
);//因為用的直接是容器window,那麼直接setcontentview也不會有預設的黑色邊框背景
二、activity的dialog顯示形式
1234
settheme(r.style
.theme_dialog
);//dialog形式
getwindow
().setcontentview
(main
);//除掉黑色背景框
getwindow
().setbackgrounddrawableresource
(android.r
.color
.transparent
);//清除背景,這樣就沒有黑邊框了
android開啟dialog黑色背景
當你style設定了背景透明 要改變dialog的布局位置時,要用 layoutparam 時,最好用 window.getattibutes 獲取 layoutparams 假如自己new 的話,可能會出現背景黑屏的現象,因為我們的 diaolog 設定了style 必須要通過 dialog 得到...
背景透明的 Dialog
一 控制dialog 的背景方法 1.定義乙個無背景主題主題 2.建立dialog dialog new dialog this,r.style.dialog dialog.setcontentview r.layout.dialog loading or dialog new dialog thi...
Android背景透明的 Dialog
一 控制dialog 的背景方法 1.定義乙個無背景主題主題 複製 2.建立dialog dialog new dialog this,r.style.dialog dialog.setcontentview r.layout.dialog loading 複製 or dialog new dial...