Window彈窗兩種透明的方式

通過WindowManager添加一個彈窗,系統默認會給彈窗添加黑色的背景。這個時候如果想要一個半透明的效果,有兩種方式:
1,設置WindowManager.LayoutParams的alpha屬性,取值在0.0-1.0之間,值越小越透明。

WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams();
wmParams.alpha = 0.2f;

設置了這個透明值之後,彈窗中所有的內容,不管是根佈局還是子控件,都會變得透明起來。有時候我們只希望彈窗的背景是半透明的,但是子控件,比如輸入框或者按鈕之類的還是不要透明,那麼可以使用下面的方式。

2,設置WindowManager.LayoutParams的format爲透明屬性。

WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams();
wmParams.format = PixelFormat.TRANSLUCENT;

這個時候,可以根據需求設置跟佈局的background屬性,同時我們的子控件透明度也不會受到影響。

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