overridePendingTransition只支持android 2.0以上版本 Android的动画效果分为两种,一种是tweened animation(补间动画),第二种是frame by frame animation。一般我们用的是第一种。补间动画又分为AlphaAnimation,透明度转换 RotateAnimation,旋转转换 ScaleAnimation,缩放转换 TranslateAnimation 位置转换(移动)。动画效果在anim目录下的xml文件中定义,在程序中用AnimationUtils.loadAnimation(Context context,int ResourcesId)载入成Animation对象,在需要显示动画效果时,执行需要动画的View的startAnimation方法,传入Animation,即可。切换Activity也可以应用动画效果,在startActivity方法后,执行overridePendingTransition方法,两个参数分别是切换前的动画效果,切换后的动画效果,下面的例子中传入的是两个alpha动画,以实现切换Activity时淡出淡入,渐隐渐现效果。下面贴出代码:两个Activity的布局文件 main.xml:

activity2.xml: 动画效果XML文件,全部存放在anim目录下: a1.xml 淡出效果 a2.xml 淡入效果: rotate.xml 旋转效果: scale.xml 缩放效果: translate.xml 移动效果: 下面是程序代码,main.java: package com.pocketdigi.animation; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.TextView; public class main extends Activity { /** Called when the activity is first created. */ TextView tv,tv2,tv3,tv4; Button bt3; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bt=(Button)findViewById(R.id.bt); tv=(TextView)findViewById(R.id.tv); tv2=(TextView)findViewById(R.id.tv2); tv3=(TextView)findViewById(R.id.tv3); tv4=(TextView)findViewById(R.id.tv4); bt3=(Button)findViewById(R.id.bt3); bt.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent(main.this,activity2.class); startActivity(intent); overridePendingTransition(R.anim.a2,R.anim.a1); //淡出淡入动画效果 } }); bt3.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Animation translate=AnimationUtils.loadAnimation(main.this, R.anim.translate); Animation scale=AnimationUtils.loadAnimation(main.this, R.anim.scale); Animation rotate=AnimationUtils.loadAnimation(main.this, R.anim.rotate); Animation alpha=AnimationUtils.loadAnimation(main.this, R.anim.a1); //载入XML文件成Animation对象 tv.startAnimation(translate); tv2.startAnimation(scale); tv3.startAnimation(alpha); tv4.startAnimation(rotate); //应用动画 }}); } } activity2.java: package com.pocketdigi.animation; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class activity2 extends Activity { Button bt2; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity2); bt2=(Button)findViewById(R.id.bt2); bt2.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent(activity2.this,main.class); startActivity(intent); overridePendingTransition(R.anim.a2,R.anim.a1); } }); } } 注:动画切换Activity只有在新启动Activity才有效,如果Activity已经启动,并且intent加了FLAG_ACTIVITY_REORDER_TO_FRONT,这样不会新启动Activity,也就没有动画效果。

更多相关文章

  1. Android(安卓)带有弹出收缩动画的扇形菜单实例
  2. Android设置透明、半透明等效果
  3. [置顶] Android(安卓)自定义UI文章汇总
  4. Android第四十四期 - 登录界面的动画
  5. 在文字周围环绕一层阴影效果[android:shadow] 使用
  6. Android(安卓)实现由下至上弹出并位于屏幕底部的提示框
  7. android Shape Drawable创建两边半圆的按钮背景【转】
  8. android 图片LOMO效果
  9. [Android] View动画特效(三)

随机推荐

  1. android studio连接手机(小米5s)
  2. Android(安卓)中文API
  3. Android(安卓)AOP
  4. 一些经典的android博客或是android小型程
  5. Android(安卓)网络图片加载之cude 框架
  6. Android(安卓)Notification常见样式总结
  7. Android(安卓)Handler机制4--MessageQueu
  8. android集成环信sdk出现app:transformCla
  9. Android(安卓)工具类 —— 判断网络连接
  10. Manifest merger failed : Attribute app