android日夜间模式切换动画


转载请说明出处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文件即可



  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值