灵通163百科在线-实用的手机,证券免费资源网站

您现在的位置:首页 > Android资源 > 主题资源 >

Android主题切换之探究白天和夜间模式

教程来源:www.lt163.com     点击数:     更新时间:2017-11-15 08:43

这里有新鲜出炉的精品教程,程序狗速度看过来!

Android移动端操作系统Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。

所谓的主题切换,就是能够根据不同的设定,呈现不同风格的界面给用户,也就是所谓的换肤。下面跟小编一起来看看怎么实现Android主题切换中的白天和夜间模式。

智能手机的迅速普及,大大的丰富了我们的娱乐生活。现在大家都喜欢晚上睡觉前玩会儿手机,但是应用的日间模式往往亮度太大,对眼睛有较为严重的伤害。因此,如今的应用往往开发了 日间和夜间 两种模式供用户切换使用,那日间和夜间模式切换究竟是怎样实现的呢?

在文字类的App上面基本上都会涉及到夜间模式、就是能够根据不同的设定、呈现不同风格的界面给用户、而且晚上看着不伤眼睛、实现方式也就是所谓的换肤(主题切换)、对于夜间模式的实现网上流传了很多种方式、这里先分享一个方法给大家、通过设置背景为透明的方法、降低屏幕的亮度与色度。


夜间模式代码

public void night() { WindowManager.LayoutParams params = new WindowManager.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, LayoutParams.TYPE_APPLICATION, WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSLUCENT); params.gravity=Gravity.BOTTOM; params.y=10; if(myView==null){ myView=new TextView(this); myView.setBackgroundColor(0x80000000); } mWindowManager.addView(myView, params); Editor edit = skinSp.edit(); edit.putString("skin", NIGHT); edit.commit(); }

白天模式

public void day(){ if(myView!=null){ mWindowManager.removeView(myView); Editor edit = skinSp.edit(); edit.putString("skin", DAY); edit.commit(); } }

下面通过实例操作来详细展示如何进行Android主题切换中的白天/夜间模式。

上述两幅图片,正是两款App的夜间模式效果,所以,依据这个功能,来看看切换主题到底是怎么实现的(当然现在github有好多PluginTheme开源插件,很多时候可以使用这些插件,不过我并不想讲怎么用那些插件,正所谓会用轮子还不如会造轮子)。

关于更换主题和换肤

这里提到是做换主题功能,当然与之类似的就是换肤,换肤现在比较流行的是采用插件化动态加载技术来实现的,这样可以起到热插拔作用,需要皮肤时候用户自主的在网上下载便是了,不用皮肤时便删了皮肤插件包而不会影响宿主App的功能,这样就不必把一大堆皮肤图片放在本地而增加apk的大小,关于用插件化实现换肤功能这仅仅是插件化技术的冰山一角,关于插件化技术更多的作用,可以看看360前两天开源的 DroidPlugin插件框架、OpenAltas框架、还有主席的DL框架。

好了,言归正传,现在我们需要实现的是主题切换功能,关于主题切换其实是切换整个App的颜色风格、排版风格、字体风格等,其中并不会有过多的图片资源的切换,如有过多的图片的更换那就是换肤的功能了。
现在我们要实现夜间/白天模式的切换功能,如下效果图:


可以看到上面的效果正是夜间和白天两种模式的切换功能,切换至夜间模式时整个App的背景色、字体颜色、按钮颜色、标题栏颜色等全部需要切为夜间模式的颜色,当切回白天模式又切回原来的颜色,来看看怎么做的?

实现主题切换

首先就是需要在app中准备两套主题:

白天主题

<resources> <style parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item>#03A9F4</item> <item>#ffffff</item> <item>@color/background_material_light</item> <item>#00BCD4</item> <item>#00BCD4</item> <item>@style/DayTitleStyle</item> <item>@style/DayContentStyle</item> <item>#2196F3</item> <item>#ffffff</item> <item>#2196F3</item> <item>#2196F3</item> </style> <style> <item>#212121</item> <item>20sp</item> <item>8dp</item> </style> <style> <item>#9C27B0</item> <item>16sp</item> <item>16dp</item> <item>10</item> </style> </resources>

夜间主题

没有相关教程
UC浏览器 最先进实用的手机端浏览器,最大限度节省页面浏览流量,点击下载
老虎地图 绿色纯免费GPS定位省流量的最佳手机地图,点击下载
网秦手机安全系列 手机杀毒防盗,防火墙,构建手机安全,点击进入
塞班精品游戏 最流行最给力的塞班S60免签名名精品游戏合集,点击进入
阿里通 手机上轻松拨打网络电话和收发短信,高音质超省话费,资费标准
爱科手机电话 国内最好的手机网络电话领先品牌,价格低廉,点击查看
愤怒的小鸟2 全民挑战超流行休闲游戏力推新作-愤怒的小鸟2,点击查看
魔力旺旺 淘宝卖家首选的交易工具

资源下载排行
文章阅读排行