1. 程式人生 > >通過WindowManager新增view以及新增動畫

通過WindowManager新增view以及新增動畫

//
mWm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);

WindowManager.LayoutParams params = new WindowManager.LayoutParams();
        params.height = WindowManager.LayoutParams.WRAP_CONTENT;
        params.width = WindowManager.LayoutParams.MATCH_PARENT;
        params.format = PixelFormat.TRANSLUCENT
; params.type = WindowManager.LayoutParams.TYPE_TOAST; params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | // 表示window不需要獲取焦點,也不需要接收各種輸入事件 WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; params.gravity
= Gravity.TOP; //新增動畫 params.windowAnimations = R.style.notice_dialog_anim_bottom2top;

下面是載入動畫的一個資原始檔

<style name="notice_dialog_anim_bottom2top">
        <item name="android:windowEnterAnimation">@anim/notice_dialog_anim_top2bottom_in</item>
        <item name="android:windowExitAnimation"
>@anim/notice_dialog_anim_top2bottom_out</item> </style>

notice_dialog_anim_top2bottom_in

<translate xmlns:android="http://schemas.android.com/apk/res/android"
           android:duration="1000"
           android:fromXDelta="0"
           android:fromYDelta="-100%"
           android:toXDelta="0"
           android:toYDelta="0">

</translate>

notice_dialog_anim_top2bottom_out

<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1000"
    android:fromYDelta="0"
    android:fromXDelta="0"
    android:toXDelta="0"
    android:toYDelta="-100%" >

</translate>