今天初步学习了一下android 简单动画的实现
(ps:本人第一次写博客,有不对或者不足,欢迎大家指出)
1 Android中动画的实现软件包:android.view.animation
1)其中包含的接口
Animation.AnimationListener
用来监听动画开始,结束以及重复,对应下面三种方法
A)onAnimationStart B)onAnimationEnd C)onAnimationRepeat
Interpolator
我的理解就是用来定义动画的加速或者减速的曲线,对应下面的方法
getInterpolation(float input)
AccelerateInterpolator ,DecelerateInterpolator,CycleInterpolator,AccelerateDecelerateInterpolator, LinearInterpolator
以上这些类都实现了这个接口,通过重新这个函数中的内容从而实现不同的加速或减速曲线类型
2 )其中包含的类
//加速曲线
AccelerateDecelerateInterpolator
动画发生的开始和结束比较慢,但是中间很快
动画开始时很慢,慢慢加速
动画开始时很快,慢慢减速
动画从开始到结束,变化率是循环给定次数的正弦曲线
动画从开始到结束,变化率是线性变化
一组动画
定义了用户动画工作时的一个工具类
一个抽象的类,定义一个动画,可用于Views,Surfaces,或者其他的对象
控制对象的透明度
一个可以控制对象旋转的动画
一个可以控制物体放大和缩小的动画
一个控制对象平移的动画
2 小试牛刀
1)主要java代码
//用Animation工具类,加载xml文件定义的动画
Animation anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.animlayout);
//定义一个动画加速曲线,这里选择减速曲线,即动画慢慢减速
DecelerateInterpolator ac = new DecelerateInterpolator();
//为动画设置加速曲线
anim.setInterpolator(ac);
//动画结束后停在动画结束的画面,不会回到起点
anim.setFillAfter(true);
//将这个动画添加到TextView中,并启动它
TextView tv = (TextView)findViewById(R.id.testview01);
tv.startAnimation(anim);
上面定义了一个动画,并且设置了一个动画加速曲线,这里为减速曲线,其他类型曲线的使用方法是一样的。
2)XML文件定义的动画动作
<span style="font-size:12px;"><?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="10"
android:toXDelta="300"
android:duration="1000">
</translate></span>
这里值定义了一个平移的动画,从10dp移动到300dp,动画周期为1000ms
先记录这些,再试试其他的功能拿来分享