Activity切换淡入淡出效果

来源:互联网 发布:c语言 运算符 编辑:程序博客网 时间:2024/05/17 06:34
 在资源文件夹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的详细启动”》

0 0
原创粉丝点击