android - Android Get Default Animator Duration Scale(开发者选项)
问题描述
所以在我的应用程序中,我真的需要将动画比例设置为 1 才能正常工作,并且我尝试使用此调用来获取定义的值,以便我可以警告用户:
val durationScale = Settings.Global.getFloat(contentResolver, Settings.Global.ANIMATOR_DURATION_SCALE, defaultValue = 1f)
奇怪的是,在我的一台设备(Lenovo Tab M10)上,所有持续时间刻度都设置为 0.5 作为原始值(这正是我需要它工作的原因,有些设备就像出厂时那样),然后这个函数没有返回正确的值ANIMATOR_DURATION_SCALE
。它总是返回发送的默认值,在这种情况下为 1f,即使它设置为 0.5f。我注意到了什么:
1- 在手动将 0.5f 从开发人员的选项更改为任何其他值(甚至回到 0.5f)后,函数开始返回正确的值。
2-TRANSITION_ANIMATION_SCALE
并且WINDOW_ANIMATION_SCALE
也设置为 0.5f 作为此设备上的原始值,即使不更改它们,上面的函数也会正确返回它们,除了TRANSITION_ANIMATION_SCALE
,这是我需要的。
这可能是仅在此设备上发生的问题吗?很难测试,因为它是我拥有的唯一将原始值设置为 0.5f 的设备,但令人非常沮丧的是,我没有得到应有的原始值。
解决方案
我同意,没有得到正确的值是令人沮丧的。我也有类似的情况。我不知道它是否会有所帮助,但我可以分享我的经验。
在某些设备中,动画持续时间比例设置为 1x (1.0f),代码中的默认值设置为 0.0f,如下所示
val durationScale = Settings.Global.getFloat(
contentResolver,
Settings.Global.ANIMATOR_DURATION_SCALE,
defaultValue = 0.0f
)
但是每当我检索该值时,它总是 0.0,即使它应该返回 1.0。就像您一样,在手动将 1x 从开发人员的选项更改为任何其他值(甚至回到 1x)后,该函数返回正确的值。
此外,这种情况发生在许多设备中,而不仅仅是一种。例如:像素、三星等。
推荐阅读
- c - C中的输出发生了奇怪的事情
- html - 下拉菜单处于活动状态,而不是项目
- python - python中的CSV包只加载前34739332行而不是超过那个?
- bash - 为什么 Makefile 中的变量可能为空,但终端中的变量可能为空?
- reactjs - 将 JavaScript React 组件转换为 TypeScript
- shell - 有没有办法只获取 glob 模式的扩展部分?
- serverless-framework - 在无服务器中创建 AWS HTTP API 作为资源
- docker - Docker 网络似乎间歇性地限制容器/服务的带宽
- ruby - Bundler 到底抱怨什么?
- c++ - 每 n 个字节复制一次内存