Android使用代碼設置Dialog的Style

因爲項目需求,不能使用Style文件設置Dialog的格式。這可就愁了寶寶了,在網上搜索了一下,基本上都是使用Style文件設置的。

1、Dialog的默認背景的設置

    通常情況下對話框有一個window級別的背景,就是我們通常遇到的Dialog周圍有黑色的陰影背景。使用代碼:

this.getWindow().setBackgroundDrawableResource(R.drawable.bg_text_bounced);
this.getWindow().setBackgroundDrawable(Drawable);

一般都是設置成圓角的,所以自己切一個圓角背景圖就好了,這個this指的是Dialog,千萬不要獲取上下文的getWindow,這個window設置了還是沒有效果,所以一定在Dialog的Window設置背景

dialog.getWindow().setBackgroundDrawableResource(R.drawable.bg_text_bounced);
dialog.getWindow().setBackgroundDrawable(Drawable);

2、其他的屬性設置

這裏我並沒有使用Style文件,其實也就是Dialog默認的Style,默認的話一般都會有對話框的父背景即我上面說的window的背景,其次就是對話框自定義的背景。

我們可以在代碼中嘗試不使用Style然後設置一下下面這些代碼,試試效果。


(1)設置不顯示對話框標題。這個標題其實每個Activity也都有,這個和Activity設置不顯示標題是一樣的:requestWindowFeature(Window.FEATURE_NO_TITLE);

(2)去陰影,這裏指的是一般對話框之外的部分有個灰色的接近透明的陰影層,設置這個相當於去掉這個陰影層:getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

(3)設置背景,就是我在1中描述的,這個Drawable就是我自己對話框要實現的Drawable背景:getWindow().setBackgroundDrawableResource(R.drawable.vip_p);

(4)設置內容的透明度:

WindowManager.LayoutParams wmParams =getWindow().getAttributes();

//wmParams.format = PixelFormat.TRANSPARENT;  內容全透明  

wmParams.format=PixelFormat.TRANSLUCENT;//內容半透明  

wmParams.alpha=1.0f;//調節透明度,1.0最大   

//dialog設置各種屬性

getWindow().setAttributes(wmParams);


3、暫時先想起來以上兩個,之後想起來再繼續補充。還有,這個明明是自己寫的,爲啥說是超別人的,本身代碼就是這樣,不理解代碼寫的一樣就是轉載的別人麼?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章