WindowManager的动画效果

闲扯两句

人才年年有,今年特别多!
有个人才定了个需求让实现Toast的自定义,好吧忍了。
有个人才定了个方案,公司统一封装框架,所在项目领导说那方案还得适配不换,好吧忍了。
有个人才又定了个需求让实现弹出的Toast淡入淡出,好吧,前面都忍了,这里还能怎么办,接着忍吧。

正文

方案应该有很多种,这里只记录我实现的方案。

  1. 先通过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" />
  1. 创建style
<style name="common_window">
    <item name="android:windowEnterAnimation">@anim/common_window_enter</item>
    <item name="android:windowExitAnimation">@anim/common_window_exit</item>
</style>
  1. 为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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容