开发项目中总是会用到一些很炫丽的activity界面之间的动画效果或是Fragment界面之间的动画效果,其实,在中已经可以很简单的实现之间的动画切换效果。在后调用就可以实现之间的动画,其中是下一个的动画效果,是当前退出的动画效果,先看看中的执行吧:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.SplashScreen);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent mainIntent = new Intent(SplashScreen.this, AndroidNews.class);
SplashScreen.this.startActivity(mainIntent);
SplashScreen.this.finish();
overridePendingTransition(R.anim.mainfadein,
R.anim.splashfadeout);
}
}, 3000);
}
实现淡入淡出的效果:
overridePendingTransition(Android.R.anim.fade_in,android.R.anim.fade_out);
由左向右滑动的效果:
overridePendingTransition(Android.R.anim.slide_in_left,android.R.anim.slide_out_right);
还有一种简单的写法,当然,效果没有上面的好:
overridePendingTransition(Android.R.anim.slide_in_left,android.R.anim.slide_out_right);
getWindow (). setWindowAnimations ( int );
实现animin和animout,即类似iphone的进入和退出时的效果:
overridePendingTransition(R.anim.zoomin, R.anim.zoomout);
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.android.com/apk/res/android"
Android:interpolator="@android:anim/decelerate_interpolator">
<scale Android:fromXScale="2.0" android:toXScale="1.0"
Android:fromYScale="2.0" android:toYScale="1.0"
Android:pivotX="50%p" android:pivotY="50%p"
Android:duration="@android:integer/config_mediumAnimTime" />
</set>
下面我们来看看animout.xml文件里的写法:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.android.com/apk/res/android"
Android:interpolator="@android:anim/decelerate_interpolator"
Android:zAdjustment="top">
<scale Android:fromXScale="1.0" android:toXScale=".5"
Android:fromYScale="1.0" android:toYScale=".5"
Android:pivotX="50%p" android:pivotY="50%p"
Android:duration="@android:integer/config_mediumAnimTime" />
<alpha Android:fromAlpha="1.0" android:toAlpha="0"
Android:duration="@android:integer/config_mediumAnimTime"/>
</set>
在我的CSDN中都是有介绍的,以后有更炫丽的动画效果的话,我会及时的更新的,希望对大家有所帮助,下面我们直接来看看XML中的动画写法(创建anim并创建相应的xml):
1.透明效果,渐入浅出
----------------in----------
---------------out---------
2.左右推动 透明渐变带黑色区域
--------in-------------
3.左右推动 透明渐变无黑色区域
----------in_from_right------------
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="260"
android:fromXDelta="100%p"
android:toXDelta="0%p"></translate>
</set>
----------out_from_left------------
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="260"
android:fromXDelta="0%p"
android:toXDelta="-100%p"></translate>
</set>
4.由上往下推动 透明渐变
---------in---------------
----------out--------
5.从左至右的带弹性的动画
(1)用200毫秒时间先向后移动2%p的位置 (2) 延迟200毫秒后从2%p位置向前移动到-100%p位置。 然后第2个Activity从延迟200毫秒然后从102%p位置移动到0%p位置。
----------new_left----------
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<translate
android:duration="200"
android:fromXDelta="0%p"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:toXDelta="2%p" />
<translate
android:duration="1000"
android:fromXDelta="2%p"
android:interpolator="@android:anim/accelerate_interpolator"
android:startOffset="200"
android:toXDelta="-100%p" />
</set>
---------- new_light----------
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromXDelta="102%p"
android:interpolator="@android:anim/anticipate_overshoot_interpolator"
android:startOffset="200"
android:toXDelta="0%p" />
6.退出动画
--------从屏幕上方退出-------
--------从屏幕下方进入---------