ObjectAnimators 比给定的持续时间快两倍 - Android
ObjectAnimators are two times faster then the given duration - Android
我有这样的翻译动画
fun createTranslateAnimation(fromX: Float, toX: Float, fromY: Float, toY: Float):
ObjectAnimator {
val propertyValuesX = PropertyValuesHolder.ofFloat(View.TRANSLATION_X, fromX, toX)
val propertyValuesY = PropertyValuesHolder.ofFloat(View.TRANSLATION_Y, fromY, toY)
return ObjectAnimator.ofPropertyValuesHolder(imageView,
propertyValuesX,
propertyValuesY)
.apply {
duration = 3000
}
}
我指定了持续时间 3000 毫秒。但是当我 运行 应用程序时,动画执行速度快了 2 倍。所以我放了一些这样的日志。
val objectAnim = createTranslateAnimation(xValueFrom, xValueTo, yValueFrom, yValueTo)
objectAnim.apply {
doOnStart {
time = System.currentTimeMillis()
}
doOnEnd {
val elapsedTime = System.currentTimeMillis() - time
Log.d("$elapsedTime seconds")
}
start()
}
最后的结果是 - 1518 秒
我做错了什么?如果我指定 3000 毫秒的持续时间,为什么它的执行速度会快两倍?
听起来设备 Developer options
部分中的 Animation duration scale
设置已更改。
据我所知,一旦 Developer options
和某些设置或值发生更改,您将无能为力,因此系统不会考虑它。
我有这样的翻译动画
fun createTranslateAnimation(fromX: Float, toX: Float, fromY: Float, toY: Float):
ObjectAnimator {
val propertyValuesX = PropertyValuesHolder.ofFloat(View.TRANSLATION_X, fromX, toX)
val propertyValuesY = PropertyValuesHolder.ofFloat(View.TRANSLATION_Y, fromY, toY)
return ObjectAnimator.ofPropertyValuesHolder(imageView,
propertyValuesX,
propertyValuesY)
.apply {
duration = 3000
}
}
我指定了持续时间 3000 毫秒。但是当我 运行 应用程序时,动画执行速度快了 2 倍。所以我放了一些这样的日志。
val objectAnim = createTranslateAnimation(xValueFrom, xValueTo, yValueFrom, yValueTo)
objectAnim.apply {
doOnStart {
time = System.currentTimeMillis()
}
doOnEnd {
val elapsedTime = System.currentTimeMillis() - time
Log.d("$elapsedTime seconds")
}
start()
}
最后的结果是 - 1518 秒
我做错了什么?如果我指定 3000 毫秒的持续时间,为什么它的执行速度会快两倍?
听起来设备 Developer options
部分中的 Animation duration scale
设置已更改。
据我所知,一旦 Developer options
和某些设置或值发生更改,您将无能为力,因此系统不会考虑它。