您的位置:首页 > 移动开发 > Android开发

android日夜间模式切换动画

2016-01-19 12:56 483 查看



转载请说明出处http://blog.csdn.net/asd2603934/article/details/50541701




在一些应用中需要有日夜间模式,当切换模式之后,如果不给点过渡动画,那效果看起来比较差。

那用什么方式来做这个切换过渡动画呢?

第一种:选择用一个activity来做过渡

首先我们建一个activity

import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.WindowManager;

import com.sdhz.yuko.R;

/**
* @author majunze
* @Title: SwitchModeActivity
* @Description: 类的描述 - 过渡activity
* @date 2016-1-19
* @email 704188225@qq.com
*/
public class SwitchModeActivity extends BaseActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//        requestWindowFeature(Window.FEATURE_NO_TITLE); // 去除标题  必须在setContentView()方法之前调用,如果在androidManifest.xml中对这个SwitchModeActivity已经设置了android:theme="@android:style/Theme.NoTitleBar.Fullscreen",那就不用再代码中写这一句,不然会报错

setContentView(R.layout.activity_switchmode);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // 设置全屏,不需要可去掉

//设置两秒后执行当前activity的销毁操作
new Handler().postDelayed(new Runnable() {
public void run() {
//execute the task
back(null);
}
}, 2000);
}

public void back(View v) {
this.finish();
try {
overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
} catch (Exception e) {
}
}

//按返回键
@Override
public void onBackPressed() {
back(null);
}

}


在res/anim文件夹中新建两个xml、 分别为activity_in跟activity_out

activity_in内容:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- fromAlpha:开始时透明度;toAlpha:结束时透明度;duration:动画持续时间 -->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromAlpha="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toAlpha="1.0" >
</alpha>
</set>


activity_out内容:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="500"
android:interpolator="@android:anim/decelerate_interpolator"
>
</alpha>
</set>


之后在需要切换模式的方法调用中执行如下代码:

Intent mode = new Intent(getActivity(), SwitchModeActivity.class);
this.startActivity(mode);
getActivity().overridePendingTransition( R.anim.activity_in,R.anim.activity_out);// 淡出淡入动画效果


这样就实现了一个过渡动画,此方式也能实现activity的切换效果,只要修改xml文件即可

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: