1. 程式人生 > >實現popupWindow類似效果的activity

實現popupWindow類似效果的activity

首先在清單檔案中對應的activity下設定主題:

<activity android:name="com.xingzhi.xingzhi_01.activity.CeShiActivity"
android:screenOrientation="portrait"
android:theme="@style/My_activity"></activity>

其中My_activity主題樣式如下:    

<style name="My_activity" parent="android:Theme.Holo.Light.Dialog">
    <item 
name="android:windowFrame">@null</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay"
>@null</item> </style> 因為activity使用的樣式是dialog樣式,所以會預設攜帶了背景變暗的效果。 只是這樣會帶來一個問題,就是activity的佈局檔案中看的是寬度填充螢幕的,但是執行效果沒有填充整個手機螢幕。 這是因為dialog帶來的問題。解決辦法是:在activity的onCreate方法中新增如下程式碼:
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.width = WindowManager.LayoutParams
.MATCH_PARENT; getWindow().setAttributes(layoutParams); 好了,以上就介紹完畢了。 不過如果單純的實現背景變暗效果,還可以使用下面的工具類程式碼來實現的:
public class WindowBackgroundAlphaUtils {
   /** 
     * 設定新增螢幕的背景透明度 
     * @param bgAlpha 
*/  
public static void backgroundAlpha(Activity activity,float bgAlpha)  
    {  
        WindowManager.LayoutParams lp =activity.getWindow().getAttributes();  
        lp.alpha = bgAlpha; //0.0-1.0  
activity.getWindow().setAttributes(lp);  
    }  

}