Xamarin安卓开发:动画Interpolator
来源:互联网 发布:cisco acl 端口控制 编辑:程序博客网 时间:2024/04/28 06:14
xamarin安卓开发中添加动画有好几种,这里归纳一下其中一种 interpolator,能够实现一些简单的平移、缩放、旋转、透明度变化等动画,基本够用了,做页面跳转可以用。
1,interpolator的分类
android:interpolator: 加速器,非常有用的属性,可以简单理解为动画的速度,可以是越来越快,也可以是越来越慢,或者是先快后忙,或者是均匀的速度等等,对于值如下:
- @android:anim/accelerate_interpolator: 越来越快
- @android:anim/decelerate_interpolator:越来越慢
- @android:anim/accelerate_decelerate_interpolator:先快后慢
- @android:anim/anticipate_interpolator: 先后退一小步然后向前加速
- @android:anim/overshoot_interpolator:快速到达终点超出一小步然后回到终点
- @android:anim/anticipate_overshoot_interpolator:到达终点超出一小步然后回到终点
- @android:anim/bounce_interpolator:到达终点产生弹球效果,弹几下回到终点
- @android:anim/linear_interpolator:均匀速度。
2,几种动画
alpha动画:
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:startOffset="500" android:duration="2000" /> </set>scale动画:
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <scale android:fromXScale="1.0" android:toXScale="0.0" android:fromYScale="1.0" android:toYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:duration="2000" /> </set>rotate动画:
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <translate android:fromXDelta="50%" android:toXDelta="100%" android:fromYDelta="50%" android:toYDelta="100%" android:duration="3000" /> </set>translate动画:
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <translate android:fromXDelta="50%" android:toXDelta="100%" android:fromYDelta="50%" android:toYDelta="100%" android:duration="3000" /> </set>属性解释:
duration: 动画运行时间,定义在多次时间(ms)内完成动画
startOffset: 延迟一定时间后运行动画
fromXDelta: X轴方向开始位置,可以是%,也可以是具体的像素 具体见图
toXDelta: X轴方向结束位置,可以是%,也可以是具体的像素
fromYDelta: Y轴方向开始位置,可以是%,也可以是具体的像素
toYDelta: Y轴方向结束位置,可以是%,也可以是具体的像素
fromAlpha: 开始透明度toAlpha: 结束透明度
pivotX: 锚点x坐标
pivotY: 锚点y坐标
3,translate动画实例
示意图:
定义一个向上退出的动画(从位置2 移动位置3)和从下面进入(从位置1移动位置2)的动画定义文件如下:
注意xml写法跟上面不一样,单独的translate标签,没有套在set里
out_to_up.xml (从屏幕上面退出)
<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromYDelta="0%p" android:toYDelta="-100%p" android:duration="1000"></translate>in_from_down.xml (从屏幕下面进入)
<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromYDelta="100%p" android:toYDelta="0%p" android:duration="1000"></translate>上面动画可以用在activity切换上。
4,复合动画
可以再xml文件中定义多个Animation,这样多个Animation可以一起运行,例如:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:shareInterpolator="true" > <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:startOffset="500" android:duration="3000" /> <rotate android:fromDegrees="0" android:toDegrees="400" android:pivotX="50%" android:pivotY="50%" android:duration="3000" /> </set>各个动画效果可以用一个set标签叠加起来,达到更好的效果。
5,使用动画
定义一个动画,关联一个xml文件,然后调用某界面元素的StartAnimation函数
var in_animation = AnimationUtils.LoadAnimation(this, Resource.Animation.zoom_in);object.StartAnimation(in_animation);
1 0
- Xamarin安卓开发:动画Interpolator
- 安卓动画android:interpolator
- 安卓动画插值器 Interpolator
- 安卓 动画 interpolator 使用讲解
- 安卓自定义interpolator
- xamarin 安卓开发通用Adapter
- 安卓开发-动画
- 安卓开发-动画
- 安卓动画系列之一,妙用Interpolator 快速实现弹球效果
- Visual Studio 2012+Xamarin开发安卓应用
- Visual Studio 2012+Xamarin开发安卓应用
- 用c#开发安卓程序 (xamarin.android)
- 用c#开发安卓程序 (xamarin.android)系列之一
- VS 2012 Xamarin 安卓 ios C#开发
- 动画 Interpolator
- 安卓开发动画效果
- 安卓开发组合动画
- KanKanStyle转载:Android开发高级动画接口 Interpolator
- 顺序表的实现
- Mac下使用Fiddler
- Java 线程池的原理与实现
- 资料
- NYOJ 119 士兵杀敌(三)(RMQ算法)
- Xamarin安卓开发:动画Interpolator
- 单链表的实现
- SecurityError:Error #2048:安全沙箱冲突
- 技术文档,完成课程表的抓包操作
- Audio笔记之MixerThread::prepareTracks_l
- Android 官方文档之Activity和Task
- vi 命令
- hdu-1875
- MiniFilter简介