Android动画(2)--TweenAnimation(补间动画)
来源:互联网 发布:网络暴力现象分析 编辑:程序博客网 时间:2024/05/16 01:54
本节我们来讲补间动画
补间动画的实现方式,补间动画则是通过特定算法在两个关键帧之间补充渐变的动画效果来实现的。补间动画的优点是可以节省空间。
补间动画如下:
<set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:duration="1000" android:fromAlpha="0.0" android:toAlpha="1.0" /> <!-- 透明度控制动画效果 alpha 浮点型值: fromAlpha 属性为动画起始时透明度 toAlpha 属性为动画结束时透明度 说明: 0.0表示完全透明 1.0表示完全不透明 以上值取0.0-1.0之间的float数据类型的数字 长整型值: duration 属性为动画持续时间 说明: 时间以毫秒为单位 --></set>
<rotate android:duration="3000" android:fromDegrees="0" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:pivotX="50%" android:pivotY="50%" android:toDegrees="+180" /> <!-- rotate 旋转动画效果 属性:interpolator 指定一个动画的插入器 在我试验过程中,使用android.res.anim中的资源时候发现 有三种动画插入器: accelerate_decelerate_interpolator 加速-减速 动画插入器 accelerate_interpolator 加速-动画插入器 decelerate_interpolator 减速- 动画插入器 其他的属于特定的动画效果 浮点数型值: fromDegrees 属性为动画起始时物件的角度 toDegrees 属性为动画结束时物件旋转的角度 可以大于360度 说明: 当角度为负数——表示逆时针旋转 当角度为正数——表示顺时针旋转 (负数from——to正数:顺时针旋转) (负数from——to负数:逆时针旋转) (正数from——to正数:顺时针旋转) (正数from——to负数:逆时针旋转) pivotX 属性为动画相对于物件的X坐标的开始位置 pivotY 属性为动画相对于物件的Y坐标的开始位置 说明: 以上两个属性值 从0%-100%中取值 50%为物件的X或Y方向坐标上的中点位置 长整型值: duration 属性为动画持续时间 说明: 时间以毫秒为单位 -->
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:fillAfter="true"> <scale android:duration="1000" android:fillAfter="false" android:fromXScale="0.0" android:fromYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:toXScale="1.4" android:toYScale="1.4" /><!-- 尺寸伸缩动画效果 scale 属性:interpolator 指定一个动画的插入器 在我试验过程中,使用android.res.anim中的资源时候发现 有三种动画插入器: accelerate_decelerate_interpolator 加速-减速 动画插入器 accelerate_interpolator 加速-动画插入器 decelerate_interpolator 减速- 动画插入器 其他的属于特定的动画效果 AnticipateOvershootInterpolator 开始的时候向后然后向前甩一定值后返回最后的值 BounceInterpolator 动画结束的时候弹起 CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线 DecelerateInterpolator 在动画开始的地方快然后慢 LinearInterpolator 以常量速率改变 OvershootInterpolator 向前甩一定值后再回到原来位置 浮点型值: fromXScale 属性为动画起始时 X坐标上的伸缩尺寸 toXScale 属性为动画结束时 X坐标上的伸缩尺寸 fromYScale 属性为动画起始时Y坐标上的伸缩尺寸 toYScale 属性为动画结束时Y坐标上的伸缩尺寸 说明: 以上四种属性值 0.0表示收缩到没有 1.0表示正常无伸缩 值小于1.0表示收缩 值大于1.0表示放大 pivotX 属性为动画相对于物件的X坐标的开始位置 pivotY 属性为动画相对于物件的Y坐标的开始位置 说明: 以上两个属性值 从0%-100%中取值 50%为物件的X或Y方向坐标上的中点位置 长整型值: duration 属性为动画持续时间 说明: 时间以毫秒为单位 布尔型值: fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用--></set>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true"> <translate android:duration="2000" android:fromXDelta="30" android:fromYDelta="30" android:toXDelta="-80" android:toYDelta="300" /> <!-- translate 位置转移动画效果 整型值: fromXDelta 属性为动画起始时 X坐标上的位置 toXDelta 属性为动画结束时 X坐标上的位置 fromYDelta 属性为动画起始时 Y坐标上的位置 toYDelta 属性为动画结束时 Y坐标上的位置 注意: 没有指定fromXType toXType fromYType toYType 时候, 默认是以自己为相对参照物 长整型值: duration 属性为动画持续时间 说明: 时间以毫秒为单位 --></set>
我想大家看了这些例子已经领会了很多了,下面我们讲讲AnimationSet
AnimationSet
这个是一种动画分组的,
android:shareInterpolator="true" //是否共享Interpolator android:interpolator="@android:anim/accelerate_decelerate_interpolator" //interpolator 加减速控制 android:duration="3000" //该组动画时间 android:fillAfter="false" //是否停留在最后一帧动画 //这里还有一个操作叫fillbefore ,是否停留在开始一帧
set的例子如下
<set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:fromXScale="1.0" android:toXScale="1.4" android:fromYScale="1.0" android:toYScale="0.6" android:pivotX="50%" android:pivotY="50%" android:fillAfter="false" android:duration="700" /> <set android:interpolator="@android:anim/accelerate_interpolator" android:startOffset="700"> <scale android:fromXScale="1.4" android:toXScale="0.0" android:fromYScale="0.6" android:toYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:duration="400" /> <rotate android:fromDegrees="0" android:toDegrees="-45" android:toYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:duration="400" /> </set></set>//此处为两个动画组。
以上五种类型分别的使用方法如下:
ImageView image = (ImageView) findViewById(R.id.imageview); Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump); image.startAnimation(hyperspaceJump);
对应的xml类型有android 的java代码的使用方法
// TODO Auto-generated method stub // 1&2: 确定起始状态,结束状态 TranslateAnimation tAnim = new TranslateAnimation(0, 400, 0, 0);//横向位移400个单位 RotateAnimation rAnima = new RotateAnimation(0, 70);//顺时针旋转70度 ScaleAnimation sAnima = new ScaleAnimation(0, 5, 0, 5);//横向放大5倍,纵向放大5倍 AlphaAnimation aAnima = new AlphaAnimation(1.0f, 0.0f);//从全不透明变为全透明 // 3: 确定持续时间 tAnim.setDuration(2000); rAnima.setDuration(2000); sAnima.setDuration(2000); aAnima.setDuration(2000); // 4: 确定Interpolator tAnim.setInterpolator(new AccelerateDecelerateInterpolator()); // 启动动画 translation.startAnimation(tAnim); rotate.startAnimation(rAnima); scale.startAnimation(sAnima); alpha.startAnimation(aAnima);
0 0
- Android动画(2)--TweenAnimation(补间动画)
- android补间动画(TweenAnimation)
- Android动画1-补间动画(TweenAnimation)
- TweenAnimation 补间动画
- Android动画之ViewAnimation(TweenAnimation)视图动画(补间动画)
- Android 补间动画TweenAnimation详解
- Android动画之补间动画(TweenAnimation)详解
- Android 补件动画 TweenAnimation 简单DEMO
- TweenAnimation补间动画的使用
- 安卓动画之TweenAnimation补间动画详细攻略
- Android动画-TweenAnimation
- Android动画之TweenAnimation
- Android tween动画(补间动画)
- 初识android动画(2)之补间动画
- android动画—补间动画(2)
- android动画之:补间动画(Tween动画)
- Android 动画(一)帧动画、补间动画
- Android属性动画和View动画(补间动画)
- BZ2599(树分治填坑)
- ToolBar、沉浸式状态栏的应用(简单粗暴)
- dll函数偏移地址获取方式方法
- APP开发实战136-APP常用功能设计
- WordPress搭建
- Android动画(2)--TweenAnimation(补间动画)
- Spring4+Quartz2集群动态创建任务
- Emacs快捷键和设置基础知识
- ROS_PCL+Rviz创建点云并三维显示
- JSF2.0中的managed bean生命周期
- gpu/cuda-01-grid/block/thread
- Caffe源码解读2 —— SyncedMemory
- yii2关闭debug后return redirect()不能跳转,服务器报500错误的解决办法
- leetcode :Binary Search: Divide Two Integers(029)