如何以编程方式在"开发人员选项"中启用"过渡动画比例"?

Mil*_*nia 4 animation android transitions pending-transition

我的活动有一些动画过渡.因此,当一项活动开始时,它会出现一些淡入淡出的动画.这是代码:

Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
overridePendingTransition (android.R.anim.fade_in, android.R.anim.fade_out);
Run Code Online (Sandbox Code Playgroud)

问题是,当"开发者选项"中的"过渡动画比例"关闭时,这些动画将不会运行.所以我正在寻找一种以编程方式启用此功能的方法,以确保显示我的动画.有没有办法将"过渡动画比例"设置为"动画比例1x"?

Mil*_*nia 8

经过几天的搜索,我找到了可以启用(或禁用)"过渡动画比例"的代码.

        Settings.Global.putInt(getContentResolver(), Global.TRANSITION_ANIMATION_SCALE, 1);
Run Code Online (Sandbox Code Playgroud)

但是这个代码有一个很大的问题 如果你问这个问题是什么?我会告诉这行代码需要此权限:

<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>

这是只授予系统应用.因此,您的应用必须是系统应用.

这个问题是关于制作系统应用程序:如何制作我的应用程序系统

UPDATE

正如@TripeHound所说,我们可以

显示一个对话框,告诉用户如果他们打开此选项,该应用程序看起来会更好(如果他们真的想要关闭,可以选择不再显示该消息)

如何打开开发者选项设置?

这条路:

startActivityForResult(new Intent(android.provider.Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS), 0);
Run Code Online (Sandbox Code Playgroud)

  • 它是一个浮点数,所以在API 17之前:`Settings.System.getFloat(getContentResolver(),Settings.System.TRANSITION_ANIMATION_SCALE,1.0f)`,在API 17之后:`Settings.Global.getFloat(getContentResolver(),Settings.Global .TRANSITION_ANIMATION_SCALE,1.0f)`. (2认同)