首先定义好acitivity切换的动画
创新互联专注于平鲁网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供平鲁营销型网站建设,平鲁网站制作、平鲁网页设计、平鲁网站官网定制、微信小程序开发服务,打造平鲁网络公司原创品牌,更为您提供平鲁网站排名全网营销落地服务。
style name="FeelyouWindowAnimTheme" parent="@android:style/Animation.Activity"
item name="android:activityOpenEnterAnimation"@anim/in_from_left/item
item name="android:activityOpenExitAnimation"@anim/out_from_right/item
item name="android:activityCloseEnterAnimation"@anim/in_from_right/item
item name="android:activityCloseExitAnimation"@anim/out_from_left/item
/style
注意需要继承自 @android:style/Animation.Activity。
4个属性的意思:
假设我们有 2 个 Activity,分别是 A1 和 A2:
当我们从 A1 启动 A2 时,A1 从屏幕上消失,这个动画叫做 android:activityOpenExitAnimation
当我们从 A1 启动 A2 时,A2 出现在屏幕上,这个动画叫做 android:activityOpenEnterAnimation
当我们从 A2 退出回到 A1 时,A2 从屏幕上消失,这个叫做 android:activityCloseExitAnimation
当我们从 A2 退出回到 A1 时,A1 出现在屏幕上,这个叫做 android:activityCloseEnterAnimation
定义具体的动画文件
anim/out_from_right.xml
translate xmlns:android=""
android:duration="500"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="100%p"
android:toYDelta="0"
/translate
anim/in_from_left.xml
translate xmlns:android=""
android:duration="500"
android:fromXDelta="-100%p"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="0"
/translate
anim/out_from_left.xml
translate xmlns:android=""
android:duration="500"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="-100%p"
android:toYDelta="0"
/translate
anim/in_from_right.xm
translate xmlns:android=""
android:duration="500"
android:fromXDelta="100%p"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="0"
/translate
最后设定activity的主题的android:windowAnimationStyle
style name="AnimActivityTheme"
item name="android:windowAnimationStyle"@style/FeelyouWindowAnimTheme/item
/style
注意两个activity都需要应用相同动画主题
activity
android:name="com.test..A1"
android:theme="@style/AnimActivityTheme"
/activity
activity
android:name="com.test.A2"
android:theme="@style/AnimActivityTheme"
/activity
属性动画对比原来的视图动画有很多的优点,属性动画可以对所有的对象做动画操作,但Android开发中需要做动画最多的还是View,如果只是对一个view做动画,很少的几个属性还行,如果是对同一个view的十几个属性同时做动画,相信属性动画的写法是比较繁琐的。ViewPropertyAnimator从名字就可以看出是专用于View的属性动画,在API12被提供。ViewPropertyAnimator专用于操作View动画,语法更加简洁,使用更加方便。
developer:
如何获取ViewPropertyAnimator 对象:
ViewPropertyAnimator 没有构造函数,通过View.animate()方法可以方便的获取ViewPropertyAnimator 对象,此时获取的动画对象就专用于操作当前view。
setDuration(); //设置动画时长
setInterpolator(); //设置插值器
setStartDelay(); //设置延迟开始时间
start(); //立刻开始动画
cancel(); //取消动画
明显看到图片先往下走了一段,然后向左的动画才开始执行。
链式操作
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(2000).translationY(300).scaleX(0.5f);
以上函数的执行,会导致相同动画的cancle,以上函数都是除了坐标相关都是以view左上角为坐标原点。
方法都比较简单,下面距几个列子:
首先利用translationX,translationXBy来区分By的意义:
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(3000).translationY(300);
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(3000).translationYBy(300);
translationYBy 可以多次移动View,translationY多次执行没有效果。
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(3000).x(100).y(100);
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(2000).rotation(270);
据观察withEndAction相当于动画开始,withStartAction相当于动画结束。
可以看到可以添加setUpdateListener监听,但无法通过这个监听函数监听到当前动画的信息,所以这个监听函数可能用处不大。
Animation动画概述和执行原理
Android动画之补间动画TweenAnimation
Android动画之逐帧动画FrameAnimation
Android动画之插值器简介和系统默认插值器
Android动画之插值器Interpolator自定义
Android动画之视图动画的缺点和属性动画的引入
Android动画之ValueAnimator用法和自定义估值器
Android动画之ObjectAnimator实现补间动画和ObjectAnimator自定义属性
Android动画之ObjectAnimator中ofXX函数全解析-自定义Property,TypeConverter,TypeEvaluator
Android动画之AnimatorSet联合动画用法
Android动画之LayoutTransition布局动画
Android动画之共享元素动画
Android动画之ViewPropertyAnimator(专用于view的属性动画)
Android动画之Activity切换动画overridePendingTransition实现和Theme Xml方式实现
Android动画之ActivityOptionsCompat概述
Android动画之场景变换Transition动画的使用
Android动画之Transition和TransitionManager使用
Android动画之圆形揭露动画Circular Reveal
Android 动画之 LayoutAnimation 动画
Android动画之视图动画的缺点和属性动画的引入
概述:随着Android手机的更新迭代,高版本自带转场动画,但是为了跟好的用户体验,以及产品差异化的体现,如果产品需要我们自己设计一套转场动画,我们又该如何实现呢
当然转场动画的实现方式有多种,接下来我们来实现一款全局的转场动画,也就是通过设置主题来达到转场动画的效果
首先我们需要准备在res文件下新建anim文件包,然后分别创建slide_in_from_right 、slide_out_to_left slide_out_to_right、slide_in_from_left的xml文件
首先当我们跳转到一个新的Activity,让新的Activity从右边的屏幕进入,被跳转的Activity界面从当前位置向左边移出屏幕
文件分别是slide_in_from_right,slide_out_to_left,此时是Activity被打开的情况下
关闭当前界面,当前的Activity从显示位置向右移出屏幕,被展示的Activity从屏幕的左边进入到屏幕,此时的文件分别是slide_out_to_right,slide_in_from_left
接着上面的分析,我们在具体的编写上面的文件就容易多了
首先 slide_in_from_right.xml
接着 slide_out_to_left.xml
slide_out_to_right.xml
slide_in_from_left.xml
现在上面的四个文件都写完了,接下来我们来使用下上面的文件
这样我们的转场动画也就实现呢,但千万别忘了最后一步,我们需要把上面的style配置的放进我们的主题,接下来我们在我们已有的主题下写入以下的配置
这样我们的主题也就设置成功了....
这个首选需要你的手机是四核及以上,这是硬件要求,再者就是你每次打开视频或者游戏界面看看是否有没有在手机右侧有个小窗口等类似字眼,点击下,即可。