当前位置:网站首页>launcher切页动画

launcher切页动画

2022-06-21 05:06:00 纵容_伊人倩影

launcher切页动画

刚工作的时候,还是launcher4.4,好像有很多切页特效可以选,重写切页特效类可以自己实现切页效果。
太久不搞launcher,忘记在哪实现切页特效了,比如什么外盒子、内盒子、旋转、仿真等等
扯远了,这篇文章简单写一下launcher切页,launcher中左右滑动页面切换动画速度调整。

1、launcher页面切页

launcher切页处理在src/com/android/launcher3/PagedView.java中

public boolean onTouchEvent(MotionEvent ev) {
    
}

具体就不写啦,小伙伴自己打断点吧。
切页分为2中:
快速滑动抛出:会有一个速度,根据速度衰减计算切页动画时间

protected boolean snapToPageWithVelocity(int whichPage, int velocity)

缓慢拖拽到一定距离松手:根据距离计算当前页面切页进度,判断是返回上一页还是切到下一页。

public static final int PAGE_SNAP_ANIMATION_DURATION = 300;

可以自己修改动画时间,加快切页。

2、负一屏和launcher切页

负一屏和第0页的切换
1、从第0页切到负一屏
PagedView的onTouchEvent还是会走,但是mNextPage都是0,不管切页成功还是滑动太少还在第0页。
那是哪里控制是否切到负一屏呢???

2、从负一屏切到第0页
src/com/android/launcher3/Workspace.java中public void onOverlayScrollChanged(float scroll) {}
打印调用堆栈发现是负一屏主动回调的launcher,切页不受launcher控制,无法修改动画时间。

2022-06-14 16:37:22.993 1837-1837/com.tblenovo.launcher I/OverlayCallbackImpl: onOverlayScrollChanged scroll : 0.0
2022-06-14 16:37:22.993 1837-1837/com.tblenovo.launcher D/Launcher.Workspace: onOverlayScrollChanged scroll : 0.0 call: java.lang.Throwable
at com.android.launcher3.Workspace.onOverlayScrollChanged(Workspace.java:1043)
at com.android.launcher3.Launcher$LauncherOverlayCallbacksImpl.onScrollChanged(Launcher.java:1669)
at com.android.searchlauncher.OverlayCallbackImpl.onOverlayScrollChanged(OverlayCallbackImpl.java:297)
at com.google.android.mediahome.launcheroverlay.client.zzg.handleMessage(com.google.android.mediahome.launcheroverlay:mediahome-[email protected]@1.1.0-eap:20)
原网站

版权声明
本文为[纵容_伊人倩影]所创,转载请带上原文链接,感谢
https://blog.csdn.net/a396604593/article/details/125305234