【问题标题】:What are the actual ms time values for Android's animTime constants?Android 的 animTime 常量的实际毫秒时间值是多少?
【发布时间】:2020-12-02 00:21:53
【问题描述】:

Android 包括

config_longAnimTime
config_mediumAnimTime
config_shortAnimTime

但这些常量标识的实际值在毫秒方面没有意义。我确信它们会被编译成有用的值,并且我可以用代码确定它们,但我确信其他人知道答案 - 更重要的是,我确信其他人会寻找它们。因此,请发布实际值作为答案,并为大家节省一点时间。

【问题讨论】:

    标签: android animation constants


    【解决方案1】:

    直接读取属性:

    getResources().getInteger(android.R.integer.config_shortAnimTime);
    getResources().getInteger(android.R.integer.config_mediumAnimTime);
    getResources().getInteger(android.R.integer.config_longAnimTime);
    

    不要使用硬编码值:某些设备提供了加速动画的选项:硬编码值会忽略该设置。

    【讨论】:

      【解决方案2】:

      当前值(自 3.x 起):

      • config_shortAnimTime=200
      • config_mediumAnimTime=400
      • config_longAnimTime=500

      以及activity打开/关闭和片段打开/关闭动画的持续时间:

      • config_activityShortDur=150
      • config_activityDefaultDur=220

      【讨论】:

      【解决方案3】:

      我们开始吧:

      config_longAnimTime   = 400
      config_mediumAnimTime = 300
      config_shortAnimTime  = 150
      

      【讨论】:

      • @JosephusVillarey 这是很久以前的事了,但我相信我只是写了一些代码来打印出这些值。
      • 我想通了。这也是我所做的。我想知道你是否在 android 源代码的某个地方找到它。
      • 专业提示:定义一个像<integer name="slide_duration">@android:integer/config_mediumAnimTime</integer> 这样的整数资源,然后你就可以获得android默认速度,但仍然可以更改它以进行调试
      • 这是以毫秒为单位的吗?如果是这样,那么 400 不到半秒,几乎感觉不到……
      • 棘手的是,例如config_activityShortDur 现在通过@android: 是“私有的”,因此您实际上必须检查源代码才能找到值。
      【解决方案4】:

      适用于任何使用 java 代码创建和启动动画的人。
      动画的默认持续时间为 300

      public class ValueAnimator extends Animator implements AnimationHandler.AnimationFrameCallback {
          ...
          // How long the animation should last in ms
          private long mDuration = 300;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-28
        • 2015-01-24
        • 1970-01-01
        • 2017-04-25
        • 1970-01-01
        • 2015-05-20
        相关资源
        最近更新 更多