现在的位置: 首页 > 综合 > 正文

activity切换无动画效果的实现

2018年05月16日 ⁄ 综合 ⁄ 共 1067字 ⁄ 字号 评论关闭

       首先说明为什么需要activity切换无动画效果。Android设置activity的默认切换效果是新的activity从右向左移入画面中,具有明显的跳转感觉;但是,某些activity,明显的跳转反而违和,譬如:点击activity_A的的搜索框,跳转到activity_B的搜索框并获得焦点,显示软键盘,等待用户输入,使用无动画的跳转效果更佳。或许还有其它的需要原因,下面进入正题。

       我了解到的实现activity无动画跳转有三种方式:

1、实例化Intent后,调用setFlag(int)方法,设置参数为Intent.FLAG_ACTIVITY_NO_ANIMATION,最后调用startActivity(Intent)。这种方法需要注意的是:不要调用finish()方法,否则activity还是使用默认的跳转效果。

	Intent intent = new Intent();
	intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
	intent.setClass(MainActivity.this, Text2.class);
	startActivity(intent);
	//this.finish(); //不要调用

2、调用startActivity(Intent)后,调用overridePendingTransition(int,int)方法,可设置两个参数都为0,或者在res文件夹下的anim目录下创建一个空的Tween Animation XML文件,然后设置overridePendingTransition的两个参数都是它。这个方法用于以自定义的动画方式跳转。

	startActivity(new Intent(MainActivity.this, Text2.class));
	//overridePendingTransition(0, 0);
	overridePendingTransition(R.anim.empty,R.anim.empty);

3、在Manifest文件中声明Activity时,通过android:theme属性设置Activity的主题,可实现跳转动画的设置,这个方法同样需要创建Tween Animation XML文件。具体参考转载的博文:Android中Activity的切换动画(非overridePendingTransition)

      最后,到底该使用哪种动画效果得根据需求,但是不论哪种效果,都应该是流畅的,不违和的。



抱歉!评论已关闭.