关闭Android过度缩放动画

Android  2020年7月1日 pm12:44发布4年前 (2020)更新 城堡大人
127 0 0

Android开发者选项中关于动画的设置有三个选项:窗口动画缩放过渡动画缩放动画程序时长缩放

这三个“缩放”的具体含义如下:

窗口动画缩放:

Scaling factor for normal window animations. Setting to 0 will disable window animations. //作用于非Activity窗口

过渡动画缩放:

Scaling factor for activity transition animations. Setting to 0 will disable window animations. //作用于Activity窗口

动画程序时长缩放:

Scaling factor for Animator-based animations. This affects both the start delay and duration of all such animations. Setting to 0 will cause animations to end immediately. The default value is 1.//作用于全局的动画时长

代码关闭Android过度缩放动画

获取WindowManager句柄,通过binder调用WindowManagerService中setAnimationScale方法

    //setAnimationScale(0.0f, 0.0f, 1.0f);

    /**
     * @para 
     * value1 窗口动画缩放
     * value2 过渡动画缩放
     * value3 Animator时长缩放
     */
    private void setAnimationScale(float value1, float value2, float value3) {
        IWindowManager mWindowManager = IWindowManager.Stub.asInterface(ServiceManager.getService(Context.WINDOW_SERVICE));
        try {
            float[] values = {value1, value2, value3};
            mWindowManager.setAnimationScales(vars);
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }

修改开发者选项中动画缩放的默认值

frameworks/base/core/res/res/values/config.xml

    <item name="config_appTransitionAnimationDurationScaleDefault" format="float" type="dimen">0.5</item>

frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java

    private float mWindowAnimationScaleSetting = 0.5f;
    private float mTransitionAnimationScaleSetting = 0.5f;
    private float mAnimatorDurationScaleSetting = 0.5f;

当然,最好还是修改framework的默认值。(framework部分没有实践过,需要自己去尝试一下)

参考

1.《Android开发者选项中动画相关配置,看这篇就够了!!!

 历史上的今天

  1. 2024: 毕淑敏:幸福是可以传染给别人的(1条评论)
  2. 2023: addr2line.exe的简单使用(0条评论)
  3. 2021: 郑振铎:月夜之话(0条评论)
  4. 2019: 肖复兴:荔枝(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

王小波:猫

下午,我回家的时候,看到地下室窗口的栅栏上趴着一只洁白的猫。它好象病了。我朝它走去时,它背对着我,低低的伏在那里,肚子紧紧的贴着铁条。我还从来没有见到过猫会这么谨小慎微的趴着,爪子紧紧的扒在铁条上。它浑身都在颤抖,头轻微的摇动着,耳朵在不停的转动,好象在追踪着每一个声响。它听见我的脚步声,每次我的...

季羡林:论坏人

积将近90年的经验,我深知世界上确实是有坏人的。乍看上去,这个看法的智商只能达到小学一年级的水平。这就等于说“每个人都必须吃饭”那样既真实又平庸。可是事实上我顿悟到这个真理,是经过了长时间的观察与思考的。我从来就不是性善说的信徒,毋宁说我是倾向性恶说的。古书上说“天命之谓性”,“性”就是我们现在...

Can't determine type for tag

前言引入公共库库(commonLib)时,出现如下异常,说实话,看不懂哈,就问谷歌了。Can't determine type for tag '<macro name="m3_comp_assist_chip_container_shape">?attr/shapeAppeara...

Android中走马灯相关问题总结

前言Android开发中,应该都或多或少使用过TextView的走马灯(或跑马灯)。对于走马灯存在的问题,网上很多,我也在这里整(抄)理(袭)一下,方便自己查阅。跑马灯耗CPU可以BiuTextView替换,请访问------>《BiuTextView完美替代TextView进行跑马...

gradlew编译的apk没有签名

前言window环境(gradlew.bat目录下)gradlew.bat app:assembleRelease//或./gradlew.bat app:assembleReleaseapp是module名,别搞错了哈Linux环境(gradlew目录下)./gradlew ap...

Lambda编程简介

前言简单记录一下Lambda编程相关知识,方便自己查阅和学习。这里重点是理解lambda作为函数参数的使用。正文Lambda表达式Lambda表达式就是一个匿名函数,它是函数式编程的基础,所谓函数式编程实际上就是一种编程范式,即如何编写程序的方法论。函数式编程的思想是将计算机运算视为函数...