Android 使用Theme实现动态切换主题详细教程

通过AssetManager切换主题

Android通过AssetManager来加载皮肤包,用皮肤包里的资源替换现有资源达成换肤效果。对此暂时没有深入研究,留作以后填写,不再赘述。

通过Theme切换主题

Android 通过在activity中使用 setTheme()函数来设置背景样式,通过加载styles.xml里的样式来设置Android 应用的主题。(注意:需要在 setContentView(R.layout.activity_main);之前调用setTheme)

在开始制作主题之前我们先看下这张图

通过这张图我们可以了解到不同的字段代表的是哪一块的颜色,例如:

  • colorPrimary 代表的是 App Bar 的颜色。

  • colorPrimaryDark 代表的是状态栏的背景色。

我们也可以自己定制布局控件的颜色:

第一步: 在values文件夹下创建attr.xml ,在attr.xml写入属性名

第二步: 在colors.xml 填入需要用到的颜色。

#008577

#D81B60

#00574B

#006c93

#b4e1f1

#003CFF

#000000

#FFFFFF

#fd0000

#f96363

#04fd00

#D9B300

#cecece

#ff3542

第三步: 设置控件的颜色样式,注意红框圈起来的部分

在这里插入图片描述

第四步: 在styles.xml文件下自定义主题样式, 在这里写个例子示范。

第五步:实现读取配置文件设置主题

private void setBaseTheme() {

SharedPreferences sharedPreferences = getSharedPreferences(

“com.example.test_preferences”, MODE_PRIVATE);

String themeType = sharedPreferences.getString(“theme_type”, “蓝色主题”);

int themeId;

switch (themeType) {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值