返回

Android 10 手势导航侧滑返回效果优化

Android

各位老铁们,大家好!今天,小爽哥要给大家分享一个 Android 10 手势导航侧滑返回效果优化的经验。

Android 10 虽然引入了手势导航功能,但默认的侧滑返回效果实在是让人一言难尽。大家可以看看这个效果:

图片1:Android 10 默认的侧滑返回效果

这种生硬的返回动画,真的让人怀疑人生。不过,不用担心,小爽哥已经成功优化了这个效果,下面就给大家分享一下我的优化思路。

首先,我们需要了解 Android 10 手势导航的侧滑返回是如何实现的。在 Android 10 中,侧滑返回手势的实现主要依靠两个系统动画:

  1. 滑动动画: 当用户从屏幕边缘向内滑动时,系统会播放一个滑动动画,将当前界面向右移动。
  2. 退出动画: 当滑动距离达到一定阈值时,系统会播放一个退出动画,将当前界面从屏幕中移除。

默认情况下,这两个动画的播放速度和曲线都是固定的。正是这种固定的动画速度和曲线,导致了生硬的返回动画效果。

为了优化这个效果,我们需要做的就是自定义这两个动画的播放速度和曲线。具体来说,我们可以通过修改以下两个文件来实现:

  • /system/framework/framework-res.apk
  • /system/framework/framework-res-ext.apk

当然,这两个文件是系统文件,我们不能直接修改它们。我们需要先将它们提取出来,然后进行修改。提取方法如下:

  1. 使用 adb 命令连接到手机:adb shell
  2. 提取 framework-res.apk 文件:dd if=/system/framework/framework-res.apk of=/sdcard/framework-res.apk
  3. 提取 framework-res-ext.apk 文件:dd if=/system/framework/framework-res-ext.apk of=/sdcard/framework-res-ext.apk

提取完成后,我们就可以对这两个文件进行修改了。具体修改方法如下:

  1. 打开 framework-res.apk 文件,找到以下资源:
<animation-list android:id="@+android:anim/app_transition_enter" />
  1. 修改这个动画列表,添加以下动画:
<item android:drawable="@android:drawable/screen_background_transparent" android:duration="100" />
<item android:drawable="@android:drawable/screen_background_transparent" android:duration="100" />
<item android:drawable="@android:drawable/screen_background_transparent" android:duration="50" />
<item android:drawable="@android:drawable/screen_background_transparent" android:duration="100" />
  1. 打开 framework-res-ext.apk 文件,找到以下资源:
<interpolator android:id="@+android:anim/accelerate_interpolator" />
  1. 修改这个插值器,添加以下代码:
<cubicBezier x1="0.5" y1="0" x2="0.5" y2="1" x3="0.5" y3="1" x4="1" y4="1" />

修改完成后,保存文件并重新打包 framework-res.apk 和 framework-res-ext.apk 文件。打包方法如下:

  1. 创建一个新的 APK 文件:mkdir framework-res.zip
  2. 将修改后的 framework-res.apk 和 framework-res-ext.apk 文件复制到 framework-res.zip 文件中:cp framework-res.apk framework-res-ext.apk framework-res.zip
  3. 压缩 framework-res.zip 文件:zip -r framework-res.zip framework-res

打包完成后,将 framework-res.zip 文件刷入手机即可。刷入方法如下:

  1. 将 framework-res.zip 文件复制到手机的 /sdcard 目录下
  2. 使用 adb 命令刷入文件:adb push /sdcard/framework-res.zip /system/framework
  3. 重启手机

重启手机后,侧滑返回效果就会变得更加流畅和自然了。大家可以看看这个效果:

图片2:优化后的侧滑返回效果

怎么样?是不是比默认的效果好多了?

当然,以上只是小爽哥自己的优化思路,大家也可以根据自己的喜好进行调整。希望这个教程能帮助大家优化 Android 10 手势导航的侧滑返回效果。

最后,给大家分享一些相关的资源: