hi,粉丝朋友们:
上一节已经讲解了多屏互动动画部分的跟手动画和自动动画设计。本节来重点讲解一下最核心的图层设计相关。
屏幕大小一样情况
这里我们采用是屏幕1和屏幕2的Task画面都是真正的Task画面,没有使用截图方式
具体实现方案:
之前没有动画的版本检测到了双指触摸要移动画面到另一个屏幕动作,就会调用moveRootTaskToDisplay
目前需要考虑把Task画面在屏幕1的Displayontent有一份
且在屏幕2的DisplayContent也有一份
及要2份一模一样的Task画面,但是我们不采用截图方案,那怎么实现呢?
其实这里还是要归功与对放大镜模式的调研,发现有类是mirror图层,即对某个画面进行镜像显示
所以这里我们就需要针对开始移动前,建立好对应的Task的Mirror图层,让显示在屏幕1,因为此时还没有移动,所以Task其实本身也在屏幕1,但是新建立的mirror图层的层级别高所以会盖住
紧接着直接调用moveRootTaskToDisplay,在个方法执行完成后会发现Task已经被转移到了屏幕2了
主屏幕的新创建的rootTaskCopy的图层节点,下面就是挂载的Mirror节点,这个就是屏幕1的Task镜像图层,而且大家看它的图层明显在DefaultTaskDisplayArea上面,所以遮盖了正常的DefaultTaskDisplayArea
屏幕2图层,这个就和正常一样,在移动瞬间,就调用了moveRootTaskToDisplay,把Task就移动到了屏幕2的DisplayContent
综合以上即可以知道在移动画面动画过程:
1、Task已经移动到了对应屏幕2的DisplayContent
2、屏幕1新增加了对应层级较高的rootTaskCopy,属于mirror了移动的task
再接下来就是需要考虑如何控制这两个图层的一个位置偏移,前面一节已经介绍过相关的公式
这个部分请关注bibili的 “千里马学框架”视频
https://www.bilibili.com/video/BV1Tv4y1J7eb
相关源码及资料
Log.i("qq群","422901085");