Android PopupWindow 彈窗背景半透明,設置最大高度



首先講一個網上的方法:

popupwindow彈出后,屏幕背景變成半透明這個效果很普通。實現的方法也很多。我使用的可能是最簡單的一種,就是設置一下getWindows的透明度。

        /**
         * 設置添加屏幕的背景透明度  1,:全透明;0.5:半透明  0~1,取自己想到的透明度
         * @param bgAlpha
         */
        public void backgroundAlpha(float bgAlpha)
        {
            WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
            lp.alpha = bgAlpha; //0.0-1.0
            activity.getWindow().setAttributes(lp);
        }

1. PopupWindow 彈出時設置:

 backgroundAlpha(0.5f);
2.PopupWindow 消失時,變成全透明,這里可以監聽PopupWindow 消失

mPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
    @Override
    public void onDismiss() {
       backgroundAlpha(1f);
    }
});

完成,現在的問題是,后來發現,有個人手機,會閃屏,並且有的手機不能正常顯示背景半透明;


方法二:

 讓Popupwindow 全屏,顯示區在下方,其它區域半透明

如圖:


注意:在點擊 背景的地方做 一個View,如果被點擊,popupwindow消失 ;

另外設置最大高度,見demo

Demo 下載




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM