Animation xml中或许代码实现
Animations的使用-代码中实现
a) Animations提供了旋转、缩放、淡入等一系列动画效果
b) 分类Tweened Animations 旋转、缩放、淡入、移动
1.1 Alpha:淡入淡出
1.2 Scale:缩放
1.3 Rotate:旋转
RotateAnimation animation=new RotateAnimation(0,360,Animation.RELATIVE_TO_PARENT,1f,Animation.RELATIVE_TO_PARENT,0f);
1.4 Translate:移动
c)
public void onClick(View view){
//创建一个AnimationSet对象
AnimationSet animationSet=new AnimationSet(true);
//创建一个AlphaAnimiation对象
AlphaAnimation alphaAnimation=new AlphaAnimation(1, 0);
//执行时间
alphaAnimation.setDuration(1000);
animationSet.addAnimation(alphaAnimation);
//然后对图片对象imageView调用startAnimation(animationSet);
setFillAfter(true)表示动画执行完停留所在的状态
setStartOffSet 等待多久
setRepeatCount重复执行次数
Animations的使用-xml中实现
1) 在res文件夹下面新建anim文件夹,创建xml文件,加入set标签
<?xml version="1.0" encoding="UTF-8"?>
<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="500"
></alpha>
</set>
2) onclickListener内容如下
Animation animation=AnimationUtils.loadAnimation(MobActivity.this,R.anim.alpha);
imageView.startAnimation(animation);
1. AnimationSet是Animation的子类
2. Interpolator
Interpolator定义了动画变化的速率
AccelerateDecelerateInterpolator:在开始和结束比较慢
CvcleInterpolator:动画循环播放特定的次数,速率改变沿着正玹曲线
LinearInterpolator:均匀变化
3. Frame-by-Frame Animations 按照指定时间间隔一个一个的显示
a) 先产生一个drawable-ldpi/anim_nv.xml
<?xml version="1.0" encoding="UTF-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/nv1" android:duration="500"/>
<item android:drawable="@drawable/nv2" android:duration="500"/>
<item android:drawable="@drawable/nv3" android:duration="500"/>
<item android:drawable="@drawable/nv4" android:duration="500"/>
</animation-list>
b) onclick动作绑定
imageView.setBackgroundResource(R.drawable.anim_nv);
AnimationDrawable animationDrawable=(AnimationDrawable)imageView.getBackground();
animationDrawable.start();
l LayoutAnimationController的使用方法
为一个layout里面的控件,或者是ViewGroup里面的控件设置动画效果。效果相同,且可以设置为在不同的时间显示。在代码或xml配置
a) 第一种xml配置
res/anim/list_anim_layout.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--为一个layout里面的控件,或者是ViewGroup里面的控件设置动画效果。
效果相同,且可以设置为在不同的时间显示。可以在代码或xml配置
delay单位秒,一个动画效果结束后另一个产生的时间 。最后指定动画效果的配置文件-->
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:delay="0.5"
android:animationOrder="normal"
android:animation="@anim/alpha"/>
在Activity listView中加入
<ListView...
android:layoutAnimation="@anim/list_anim_layout"
>
b) 第二种代码配置
Animation animation=(Animation)AnimationUtils.loadAnimation(this, R.anim.alpha);
LayoutAnimationController lac=new LayoutAnimationController(animation);
lac.setOrder(LayoutAnimationController.ORDER_NORMAL);
listView.setLayoutAnimation(lac);
l ListView与Animations结合使用
AnimationListener
a) onAnimationEnd(Animation animation)
b) onAnimationRepeat(Animation animation)
c) onAnimationStart(Animation animation)
l AnimationListener的使用方法