Activity切換淡入淡出效果

 在資源文件夾res下新建anim文件夾,在其中創建補間動畫XML文件,
淡入效果,ap1.xml文件代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <!-- fromAlpha:開始時透明度;toAlpha:結束時透明度;duration:動畫持續時間 -->
    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />

</set>

淡出效果,ap2.xml文件代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <alpha
        android:duration="500"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />

</set>

然後,進行測試,我們先創建兩個Activity類
主界面代碼如下:
public class main extends Activity {
Button bt;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bt = (Button) findViewById(R.id.bt);

//界面切換按鈕監聽事件
bt.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(main.this, activity2.class);
startActivity(intent);
overridePendingTransition(R.anim.ap2, R.anim.ap1);// 淡出淡入動畫效果
}
});
}
 次界面代碼如下:
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(){
public void onClick(View v) {
Intent intent=new Intent(activity2.this,main.class);
startActivity(intent);
overridePendingTransition(R.anim.ap2,R.anim.ap1);
}
        });
    }
兩個activity的佈局就是添加了一個Button控件,實現點擊切換activity

    上邊的代碼可以實現兩個activity的淡入淡出切換,但是如果一直點擊兩個按鈕,進行切換,那麼就會新建很多的activity,當你按下手機的Back建進行返回時就需要點好多次。很明顯,這樣不符合設計的初衷,於是進行調整代碼:

1.在此界面的按鈕點擊事件下最後加入finish();方法,來關閉此activity。

2.在AndroidMainfest.xml中,在主activity中,加入android:launchMode="singleTask"。《此語句詳情可以去看本人的另一篇文章“activity的詳細啓動”》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章