仿知乎客户端的白天黑夜主题切换

仿知乎客户端的白天黑夜主题切换

转载请注明出处
作者:AboutJoke ( http://blog.csdn.net/u013200308 )
原文链接:http://blog.csdn.net/u013200308/article/details/51168922


最近刚刚做完了个人项目,腾出时间来把自己遇到过的一些问题和处理技巧写出来,和大家交流交流。
今天要说的就是仿知乎客户端的主题切换,首先来看看知乎客户端的切换图例:
知乎示例


通过上示的图例,我们来进行分析。图例实现了两种效果:

  1. 白天黑夜主题的切换
  2. 切换带有渐变的动画效果

主题切换比较简单,较适合初学者的方式就是通过给Activity设置不同的theme来实现。用到的主要方法就是setTheme(),值得注意的是该方法必须放在onCreate()方法之前,不然不会有任何效果。这样就会有同学疑问,既然切换主题的方法放在了onCreate()之前,那么在Activity呈现之后,再点击按钮去切换主题,这时onCreate()已经被调用过了,那么就不会有任何效果。除非…对,我们把当前Activity给finish()掉然后再次打开,就可顺利的设置主题了。而切换带有的渐变效果,网上关于这方面的争议比较多,但实现起来都比较麻烦,笔者通过给Activity设置进入退出动画,实现了这一效果,接下来就通过一个简单的Demo来实现一下。


主要代码如下,具体可通过下载源码查看。

首先定义切换的主题和动画效果

这里使用Android主题来实现,具体的图片或文字的效果可以通过自定义属性来实现。

<resources>

    <!--白天主题-->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值