前言
昨天分享了一个android浮动窗口的小程序,它的代码我就不在这里贴出来了,详情可以从这里去了解浮动小窗口代码,但是今天想想好像少了点什么,就想到了给它设置一个动画效果,这样当显示与关闭的时候不会觉得那么生硬,那么如何设置该动画呢?代码也直接贴出来了
// 这段代码在昨天的小程序中有写到,设置动画就多加了一行代码: mLayout.windowAnimations = R.style.anim_view;
/**
* 设置WindowManager
*/
private void createWindowManager() {
// 取得系统窗体
mWindowManager = (WindowManager) getApplicationContext()
.getSystemService("window");
// 窗体的布局样式
mLayout = new WindowManager.LayoutParams();
// 设置窗体显示类型:TYPE_SYSTEM_ALERT(系统提示)
mLayout.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
// 设置窗体焦点及触摸类型:FLAG_NOT_FOCUSABLE(不能获得按键输入焦点)
mLayout.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
// 设置显示的模式
mLayout.format = PixelFormat.RGBA_8888;
// 设置对齐的方法
mLayout.gravity = Gravity.TOP | Gravity.LEFT;
// 设置动画:这句代码就是在昨天的基础上添加的
mLayout.windowAnimations = R.style.anim_view;
// 设置窗体宽度和高度
mLayout.width = WindowManager.LayoutParams.WRAP_CONTENT;
mLayout.height = WindowManager.LayoutParams.WRAP_CONTENT;
}
动画文件代码我也贴出来
<!-- style.xml -->
<!-- 浮动窗口动画 -->
<style name="anim_view">
<item name="android:windowEnterAnimation">@anim/push_up_in</item>
<item name="android:windowExitAnimation">@anim/push_up_out</item>
</style>
<!-- push_up_in.xml -->
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="800"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="800" />
</set>
<!-- push_up_out.xml -->
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0" android:toYDelta="100%p" android:duration="1000"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="1000" />
</set>