Android_Animation动画
来源:互联网 发布:java求最大公约数 编辑:程序博客网 时间:2024/05/17 21:47
Animation动画
位移、翻转、透明、缩放
共有方法:
1、setRepeatMode();设置重复模式
常用:
Animation.RESTART 每次从头开始Animation.REVERSE 反复开始
2、setRepeatCount();设置重复次数
3、setDuration(3000);设置动画执行的时间(单位:毫秒)
4、view.startAnimation(具体对象) 开始动画
5、setFillAfter(true); 动画执行完之后是否保留最终状态
6、setFillBefore(false); 动画执行完之后是否恢复执行前状态
7、setStartOffset(500);设置延时启动
①、透明:AlphaAnimation
1、new AlphaAnimation(from, to) 1:完全不透明,0完全透明
2、 或者:res的anim文件夹中:
<alpha android:fromAlpha="1" android:toAlpha="1" android:duration="3000" android:repeatCount="1" android:repeatMode="reverse"/>
通过AnimationUtils.loadAnimation(resId);在Activity引用
②、旋转:RotateAnimation
newRotateAnimation(fromDegrees,toDegrees, pivotXType, pivotXValue, pivotYType, pivotYValue);
参数1:fromDegrees:旋转起始角度
参数2:toDegrees:旋转结束角度 以下4个参数用来设置旋转圆心:
参数3:pivotXType:旋转类型,表示以哪个位置为旋转的基点横坐标。
共有3个:
Animation.ABSOLUTE,一个绝对像素值
Animation.RELATIVE_TO_SELF 计算距离时看的是自己的宽高
Animation.RELATIVE_TO_PARENT.计算距离时看的是其父控件的宽高
参数4:pivotXValue:
0-1f之间的一个float值,表示实际旋转时圆心相对基点的水平偏移量,0表示不偏移,0.5f是半个控件长度 ,1表示偏移当前控件宽度
参数5:pivotYType: 同参数3.
参数6:pivotYValue 同参数4
实现:
③、缩放:ScaleAnimation
new ScaleAnimation(fromX, toX, fromY, toY)
1到0的float值,表示起始结束大小
也可以1到
1代表当前大小,小于1代表缩小的倍数,大于1代表放大的倍数
new ScaleAnimation(fromX, toX, fromY, toY, pivotXType, pivotXValue, pivotYType, pivotYValue)
意义同旋转。。。
实现:
④、位移:TranslateAnimation
new TranslateAnimation(fromX, toX, fromY, toY)
1到0的float值,表示起始横纵坐标
new TranslateAnimation( fromXType, fromXValue, toXType, toXValue, fromYType, fromYValue, toYType, toYValue);
意义同旋转。。。
<translateandroid:duration="1000"android:fromXDelta="-100%"android:toXDelta="0"/>
实现:
注意:起始的0,0值得是控件当前位置,不仅仅时屏幕的左上角
⑤、AnimationSet 动画集合
AnimationSet 动画集合,里面可放置多个动画效果
animationSet.addAnimation() 添加动画到动画集或者:
res中
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/bounce_interpolator" ></set>
实现:
⑥、Interpolator 动画修改器
Interpolator:基本动画的修改器
修改器属性:
1、AccelerateInterpolator:动画从开始到结束,变化率是一个加速的过程。
2、DecelerateInterpolator:动画从开始到结束,变化率是一个减速的过程。
3、CycleInterpolator:动画从开始到结束,变化率是循环给定次数的正弦曲线。
4、AccelerateDecelerateInterpolator:动画从开始到结束,变化率是先加速后减速的过程。
5、LinearInterpolator:动画从开始到结束,变化率是线性变化。
6、OvershootInterpolator 向前甩一定值后再回到原来位置
7、 BounceInterpolator 动画结束的时候弹起。
8、AnticipateInterpolator 开始的时候向后然后向前甩
9、AnticipateOvershootInterpolator 开始的时候向后然后向前甩一定值后返回最后的值
用法:
用法简单,只需要new出动画效果,通过当前动画对象执行setInterpolator(传入具体对象使用)方法。 以位移–>BounceInterpolator 为例:
⑦、通过xml来设置动画
在res中新建anim文件夹和xml
xml中实际为AnimationSet集合
重复的次数在某个动画中能生效,但是在Set标签里不能
!!!注:在xml设置大小,单位为px,并且可以填写% 100%代表当前空间宽高—100%p代表当前布局宽高!!!
Activity调用:
在xml中也可以使用动画修改器
⑧、AnimationStyle 动画风格
可以用已有的动画来修改其他控件的动画风格,如弹窗,切换等
setAnimationStyle
<style name="AnimationFade"><!-- PopupWindow左右弹出的效果 --><item name="android:windowEnterAnimation">@anim/in</item><item name="android:windowExitAnimation">@anim/out</item></style>
扩展
1、切换界面时的划动效果
①、在anim中
创建划动的动画 (切换的动画)
activity_in.xml—–>2界面从右屏幕宽度位置,向左滑进至0位置
activity_out.xml—–>1界面从屏幕的0位置,向左出至负屏幕位置
②、设置切换回的动画(按下BACK键)
back_in.xml—–>1界面从屏幕负屏幕宽度位置,向右滑进至0位置
back_out.xml—–>2界面从屏幕的0位置,向右滑出至屏幕宽度位置
③、java代码:
1界面:
2界面(在按下BACK键后返回1界面,需要在2界面覆写BACK方法)
效果:
在1界面按下监听,界面向左滑动显示2页面,在2界面按下BACK向右滑动回到1界面
2、Dialog 从上向下滑出—>默认直接弹出在界面
①、对话框:
②、在anmi中设置动画–>滑出与滑入
dig_in.xml 进入的动画 —->改变Y坐标 从上往下弹
dig_out.xml 出去的动画 —->改变Y坐标 从下往上回
③、java:
在窗体动画中传入的是样式style,所以应该将②中的动画封装到style中
④、封装动画
⑨、LayoutAnimationController
new LayoutAnimationController(ani ,delay)
可作用于ListView实现单个条目动画效果:
lv.setLayoutAnimation(controller);lv.startLayoutAnimation();
或:
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"android:animation="@anim/my_anim"android:delay="1" />LayoutAnimationController layoutAnimationController= AnimationUtils.loadLayoutAnimation(this,R.anim.layoutanim);
java:
layout.xml:—->引用test1动画,延时0.7秒执行
test1.xml 位移(0,0位置 重复2遍)、透明4秒进入
- Android_Animation动画
- Android_Animation动画
- Android_Animation Drawable(旋转动画)
- android_animation(渐变动画)
- Android_Animation
- Android_Animation
- Android_Animation
- Android_Animation
- android_animation三种动画学习总结
- Android_Animation基础
- Android_Animation(View)_1
- Android_Animation(View)_2
- 动画
- 动画
- 动画
- 动画
- 动画
- 动画
- 使用vue.js的Input和下拉选select应该注意的问题
- MySql 进阶
- Java中常用的几种流的
- LeetCode刷题【Array】 Find Minimum in Rotated Sorted Array
- B
- Android_Animation动画
- C语言中一个unsigned char型变量一直自减到0再自减会得到什么数值?
- 快速排序的认识
- java使用之前必须初始化
- 回调指针回调函数的使用(C语言)
- easyui最小化后停留在页面的右下角
- paper-10-IRM-in-MANETs
- 欢迎使用CSDN-markdown编辑器
- AFNetworking请求错误的一二件事