闲扯两句
人才年年有,今年特别多!
有个人才定了个需求让实现Toast的自定义,好吧忍了。
有个人才定了个方案,公司统一封装框架,所在项目领导说那方案还得适配不换,好吧忍了。
有个人才又定了个需求让实现弹出的Toast淡入淡出,好吧,前面都忍了,这里还能怎么办,接着忍吧。
正文
方案应该有很多种,这里只记录我实现的方案。
- 先通过xml创建淡入淡出的动画:
淡入common_window_enter:
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="133" />
淡出common_window_exit:
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="133" />
- 创建style
<style name="common_window">
<item name="android:windowEnterAnimation">@anim/common_window_enter</item>
<item name="android:windowExitAnimation">@anim/common_window_exit</item>
</style>
- 为WindowManager配置style
val mParams: WindowManager.LayoutParams = WindowManager.LayoutParams()
mParams.height = WindowManager.LayoutParams.WRAP_CONTENT
mParams.width = WindowManager.LayoutParams.MATCH_PARENT
mParams.type = WindowManager.LayoutParams.TYPE_APPLICATION
// 重点
mParams.windowAnimations = R.style.common_window