我正在尝试使用AnimatedVectorDrawable
作为放置在窗口背景中的启动动画。我使用官方给出的例子https://developer.android.com/reference/android/graphics/drawable/AnimatedVectorDrawable.html https://developer.android.com/reference/android/graphics/drawable/AnimatedVectorDrawable.html。它出现但没有动画。
动画是在Window
背景可能吗?
第一次打开应用程序(冷启动)时看到的第一个屏幕是由WindowManager
。它通过获取您在主题上设置的资源(例如窗口背景和状态栏颜色)来创建占位符。要启动窗口背景的动画,您必须调用它start()
方法,但是WindowManager
是您几乎无法控制的系统服务。所以在应用程序初始化的这个阶段,除非有一些晦涩的方法来控制WindowManager
in the Application.onCreate()
方法,无法对矢量背景进行动画处理。
我从冷启动打开了很多应用程序,包括 Google 的应用程序,但似乎没有一个应用程序在冷启动阶段实现动画(就像 Material Design 文档暗示的那样)。很少有人在主 Activity 的 onCreate 冷启动后制作动画。
如果冷启动后启动动画没有问题,就像将徽标移动到屏幕顶部的情况一样,您可以:
- 设置带有属性的主题
android:windowBackground
到 AndroidManifest.xml 中启动活动中的静态可绘制对象
- 在您的 Activity 中调用 super.onCreate() 之前,请将主题更改为默认主题。
- 使用 AnimatedVectorDrawable 的 ImageView 在静态窗口背景矢量的同一位置设置内容视图。
- Call
start()
AnimatedVectorDrawable 的方法。
这是一个Android 开发者发帖详细解释了如何处理启动屏幕的应用程序主题 https://plus.google.com/+AndroidDevelopers/posts/Z1Wwainpjhd
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)