简介
3.0之前 透明,旋转,位移,缩放4种 不具备交互性 响应的位置还仍然在动画前的位置。 可在java实现,可在xml中实现
java中
public void alpha(View view){
AlphaAnimation aa = new AlphaAnimation(0.0f , 1.0f );
aa.setDuration(2000 );
aa.setRepeatCount(1 );
aa.setRepeatMode(Animation.REVERSE);
aa.setFillAfter(true );
iv.startAnimation(aa);
}
public void trans(View view){
TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, -0.5f ,
Animation.RELATIVE_TO_PARENT, 0.5f ,
Animation.RELATIVE_TO_PARENT, 0.0f ,
Animation.RELATIVE_TO_PARENT, 0.0f );
ta.setDuration(2000 );
ta.setRepeatCount(1 );
ta.setRepeatMode(Animation.REVERSE);
iv.startAnimation(ta);
}
public void scale(View view){
ScaleAnimation sa = new ScaleAnimation(0.1f , 2.0f , 0.1f , 2.0f , Animation.RELATIVE_TO_SELF,
0.5f , Animation.RELATIVE_TO_SELF, 0.5f );
sa.setDuration(2000 );
sa.setRepeatCount(1 );
sa.setRepeatMode(Animation.REVERSE);
iv.startAnimation(sa);
}
public void rotate(View view){
RotateAnimation ra = new RotateAnimation(0 , 360 , Animation.RELATIVE_TO_SELF,
0.0f , Animation.RELATIVE_TO_SELF, 0.0f );
ra.setDuration(2000 );
ra.setRepeatCount(1 );
ra.setRepeatMode(Animation.REVERSE);
iv.startAnimation(ra);
}
public void set (View view){
AnimationSet set = new AnimationSet(false );
TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, -0.5f ,
Animation.RELATIVE_TO_PARENT, 0.5f ,
Animation.RELATIVE_TO_PARENT, -0.5f ,
Animation.RELATIVE_TO_PARENT, 0.5f );
ta.setDuration(2000 );
ta.setRepeatCount(1 );
ta.setRepeatMode(Animation.REVERSE);
ScaleAnimation sa = new ScaleAnimation(0.1f , 2.0f , 0.1f , 2.0f , Animation.RELATIVE_TO_SELF,
0.5f , Animation.RELATIVE_TO_SELF, 0.5f );
sa.setDuration(2000 );
sa.setRepeatCount(1 );
sa.setRepeatMode(Animation.REVERSE);
RotateAnimation ra = new RotateAnimation(0 , 360 , Animation.RELATIVE_TO_SELF,
0.0f , Animation.RELATIVE_TO_SELF, 0.0f );
ra.setDuration(2000 );
ra.setRepeatCount(1 );
ra.setRepeatMode(Animation.REVERSE);
set .addAnimation(ra);
set .addAnimation(ta);
set .addAnimation(sa);
iv.startAnimation(set );
}
XML中
alpha.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android ="http://schemas.android.com/apk/res/android"
android:fromAlpha ="0.0"
android:toAlpha ="1.0"
android:duration ="2000"
android:repeatCount ="1"
android:repeatMode ="reverse"
android:fillAfter ="true"
>
</alpha >
rotate.xml
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android ="http://schemas.android.com/apk/res/android"
android:fromDegrees ="0"
android:toDegrees ="360"
android:pivotX ="50%"
android:pivotY ="50%"
android:duration ="2000"
android:repeatCount ="1"
android:repeatMode ="reverse" >
</rotate >
scale.xml
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android ="http://schemas.android.com/apk/res/android"
android:fromXScale ="0.1"
android:toXScale ="2.0"
android:fromYScale ="0.1"
android:toYScale ="2.0"
android:duration ="2000"
android:pivotX ="50%"
android:pivotY ="50%"
android:repeatCount ="1"
android:repeatMode ="reverse" >
</scale >
trans.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android ="http://schemas.android.com/apk/res/android"
android:fromXDelta ="-50%p"
android:toXDelta ="50%p"
android:fromYDelta ="0"
android:toYDelta ="0"
android:duration ="2000"
android:repeatCount ="1"
android:repeatMode ="reverse"
>
</translate >
set.xml
<set >
<alpha
xmlns:android ="http://schemas.android.com/apk/res/android"
android:duration ="2000"
android:fillAfter ="true"
android:fromAlpha ="0.0"
android:repeatCount ="1"
android:repeatMode ="reverse"
android:toAlpha ="1.0" >
</alpha >
<rotate
xmlns:android ="http://schemas.android.com/apk/res/android"
android:duration ="2000"
android:fromDegrees ="0"
android:pivotX ="50%"
android:pivotY ="50%"
android:repeatCount ="1"
android:repeatMode ="reverse"
android:toDegrees ="360" >
</rotate >
<scale
xmlns:android ="http://schemas.android.com/apk/res/android"
android:duration ="2000"
android:fromXScale ="0.1"
android:fromYScale ="0.1"
android:pivotX ="50%"
android:pivotY ="50%"
android:repeatCount ="1"
android:repeatMode ="reverse"
android:toXScale ="2.0"
android:toYScale ="2.0" >
</scale >
<translate
xmlns:android ="http://schemas.android.com/apk/res/android"
android:duration ="2000"
android:fromXDelta ="-50%p"
android:fromYDelta ="0"
android:repeatCount ="1"
android:repeatMode ="reverse"
android:toXDelta ="50%p"
android:toYDelta ="0" >
</translate >
</set >
开启动画:
//旋转动画
public void rotate(View view){
Animation ra = AnimationUtils.loadAnimation(this, R.anim.rotate);
iv.startAnimation(ra);
}
//动画组合
public void set(View view){
Animation set = AnimationUtils.loadAnimation(this, R.anim.set);
iv.startAnimation(set);
}