通過WindowManager新增view以及新增動畫
阿新 • • 發佈:2019-01-27
//
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>