溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android使用代碼設(shè)置Dialog的Style

發(fā)布時間:2020-07-16 21:42:10 來源:網(wǎng)絡(luò) 閱讀:7457 作者:fanwei4751 欄目:移動開發(fā)

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

1、Dialog的默認(rèn)背景的設(shè)置

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

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

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

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

2、其他的屬性設(shè)置

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

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


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

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

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

(4)設(shè)置內(nèi)容的透明度:

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

//wmParams.format = PixelFormat.TRANSPARENT;  內(nèi)容全透明  

wmParams.format=PixelFormat.TRANSLUCENT;//內(nèi)容半透明  

wmParams.alpha=1.0f;//調(diào)節(jié)透明度,1.0最大   

//dialog設(shè)置各種屬性

getWindow().setAttributes(wmParams);


3、暫時先想起來以上兩個,之后想起來再繼續(xù)補(bǔ)充。還有,這個明明是自己寫的,為啥說是超別人的,本身代碼就是這樣,不理解代碼寫的一樣就是轉(zhuǎn)載的別人么?

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI