博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Fragment过度动画分析一
阅读量:7211 次
发布时间:2019-06-29

本文共 1539 字,大约阅读时间需要 5 分钟。

Sliding Fragment

介绍:该案例为传统的Fragment增加了个性化的补间动画,其效果是原有fragment向屏幕内做一定的下沉,新的fragment显示在最上层,产生层叠效果的多个fragments。

Video:

Source:

本文将简单分析其实现流程及原理

Step1:添加Fragment并设置点击的切换事件
首先添加一个fragment,并设置显示内容已做区别,案例中显示了一张图片,接着设置单击事件,为了使得我们单击任意位置都能触发fragment的切换动画,这
里需要为用于展示图片的fragment,显示文本的fragment以及黑色背景view都添加该事件监听器。

Step2:fragment切换实现

这里只有2个fragment,一个是用于显示图片,另一个显示文本,预期效果是单击屏幕后,图片下沉,文本显示到顶层,再次单击后则恢复原状,即,文本消失>,图片上浮。
分析这些动画的顺序和效果,图片的下沉可以通过一个组合animation来做,1.缩放,例如缩小为原图80%,2.旋转,这里的下层效果是首先图片x轴旋转40度,>然后再将旋转角度设置为0,3.添加一个半透明的遮罩,以示图片当前出于幕后状态,

文本的出现则在图片的动作完成后,通过manager动态讲其添加到画面上,这里的文本不是全屏的,否则就看不到后面的图片背景,文本的出现也可以添加动画>,这里文本出现时由下至上,消失时由上至下。

private void switchFragments () {        if (mIsAnimating) {            return;        }        mIsAnimating = true;        if (mDidSlideOut) {            mDidSlideOut = false;            getFragmentManager().popBackStack();        } else {            mDidSlideOut = true;            AnimatorListener listener = new AnimatorListenerAdapter() {                @Override                public void onAnimationEnd(Animator arg0) {                    FragmentTransaction transaction = getFragmentManager().beginTransaction();                    transaction.setCustomAnimations(R.animator.slide_fragment_in, 0, 0,                            R.animator.slide_fragment_out);                    transaction.add(R.id.move_to_back_container, mTextFragment);                    transaction.addToBackStack(null);                    transaction.commit();                }            };            slideBack (listener);        }    }

  

转载地址:http://hgeum.baihongyu.com/

你可能感兴趣的文章
数据库建立索引的原则
查看>>
林洋能源:布局能源互联网 分布式光伏龙头再扬帆
查看>>
理解 Linux/Unix 登录脚本
查看>>
C++程序设计:原理与实践(进阶篇)15.4 链表
查看>>
《C++面向对象高效编程(第2版)》——3.16 从函数中返回引用
查看>>
《JavaScript精粹(修订版)》——1.6 使用括号和分号结束符(一致的编码方式)...
查看>>
2.4 表单数据的验证
查看>>
《Android游戏开发详解》——第2章,第2.10节使用对象
查看>>
《OpenGL ES 2.0游戏开发(上卷):基础技术和典型案例》一第6章 让场景更逼真——光照效果...
查看>>
MongoDB介绍与安装
查看>>
《C语言接口与实现:创建可重用软件的技术》一1.5 习题
查看>>
《网页设计与前端开发 Dreamweaver+Flash+Photoshop+HTML+CSS+JavaScript 从入门到精通》—— 第1章 网页设计基础知识...
查看>>
Maven实战. 3.7NetBeans Maven插件简单使用
查看>>
Android开发技术周报 Issue#17
查看>>
《iOS 9 开发指南》——第6章,第6.7节iOS 9控件的属性
查看>>
this is incompatible with sql_mode=only_full_group_by
查看>>
TableView编辑状态下跳转页面的崩溃处理
查看>>
java操作阿里云的对象存储OSS
查看>>
linux 如何判断当前用户
查看>>
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
查看>>