activity切換無動畫效果的實現

銳湃發表於2015-11-09

首先說明為什麼需要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)

      最後,到底該使用哪種動畫效果得根據需求,但是不論哪種效果,都應該是流暢的,不違和的。

轉自:http://blog.csdn.net/bcai2/article/details/42969049

相關文章