【问题标题】:AnimatedVectorDrawable as Window background. Is it possible?AnimatedVectorDrawable 作为窗口背景。可能吗?
【发布时间】:2017-08-09 20:59:15
【问题描述】:

我正在尝试使用AnimatedVectorDrawable 作为放置在窗口背景中的启动动画。我使用https://developer.android.com/reference/android/graphics/drawable/AnimatedVectorDrawable.html中给出的官方示例。它出现但没有动画。

Window 背景中的动画是否可行?

【问题讨论】:

    标签: android animation android-vectordrawable animatedvectordrawable


    【解决方案1】:

    您第一次打开应用程序(冷启动)时看到的第一个屏幕是由WindowManager 创建的屏幕占位符。它通过获取您在主题上设置的资源来创建占位符,例如窗口背景和状态栏颜色。要启动窗口背景的动画,您必须调用其start() 方法,但WindowManager 是您几乎无法控制的系统服务。所以在应用程序初始化的这个阶段,除非在Application.onCreate()方法中有一些晦涩的方法来控制WindowManager,否则不可能为矢量背景设置动画。

    我从冷启动打开了很多我的应用程序,包括 Google 的应用程序,但似乎没有一个应用程序在冷启动阶段实现动画(就像 Material Design 的文档暗示可能的那样)。极少数在主Activity的onCreate冷启动后制作动画。

    如果在他冷启动后启动动画没有问题,例如将徽标移动到屏幕顶部,您可以:

    1. 在 AndroidManifest.xml 中的启动活动中为静态可绘制对象设置一个带有 android:windowBackground 属性的主题
    2. 在 Activity 中调用 super.onCreate() 之前,将主题更改为默认主题。
    3. 使用 AnimatedVectorDrawable 的 ImageView 在静态窗口背景矢量的相同位置设置内容视图。
    4. 调用 AnimatedVectorDrawable 的 start() 方法。

    这是AndroidDeveloper's post explaining in details how to deal with application themes for launch screens

    【讨论】:

      猜你喜欢
      • 2014-01-26
      • 2010-11-21
      • 2014-12-26
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多