android换主题功能,Android 切换主题风格(Theme换肤效果)
参考
截图
1、默认打开
image.png
2、点击【换主题色】
image.png
需知
主题色运用:manifest清单文件中application的属性之一,android:theme="@style/AppTheme"
在style.xml中定义不同风格的theme(对app而言的style啦)
熟悉?attr/colorPrimary等属性,在theme中定义好后,布局文件用到这些属性可以自动替换
如何点击触发后整体画面生效
代码
1、清单文件manifest中,app默认使用AppTheme(或者自定义Theme)
...
android:theme="@style/AppTheme">
...
2、style.xml 风格:
可定义app的theme,比方说AppTheme和MyTheme
一般用来定义app内各种控件样式,可重复使用,减少layout中的代码量,亦可做到后期维护换色等快速修改,不用一一修改。
用到一些自定义属性
@color/colorPrimary
@color/colorPrimaryDark
@color/colorAccent
@color/wx_bg_gray
60dp
@color/sysColorPrimary
@color/sysColorPrimaryDark
@color/sysColorAccent
80dp
@color/wx_green
@color/wx_sunset
100dp
match_parent
?attr/myButtonHeight
3、attr.xml 自定义属性(一般做自定义View的人肯定熟悉):
如果不用可忽略。这里定义后,就可在style.xml中使用这个item属性了,并可以写?attr/myBgColor 和 ?attr/myButtonHeight
4、layout.xml 布局文件使用
这里背景使用到:android:background="?attr/myBgColor"
其中一个按钮用到:style="@style/MyBtnStyle",而这个style里面属性用到?attr/myButtonHeight 。 而且这个myButtonHeight定义到了2个theme里面了!!!
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
android:background="?attr/myBgColor">
android:id="@+id/sample_text"
android:textSize="25sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
/>
android:id="@+id/et_1"
android:textSize="25sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Edit it"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CheckBox"
android:checked="true"/>
android:id="@+id/btn_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击这里"/>
android:id="@+id/btn_2"
style="@style/MyBtnStyle"
android:text="换主题色"/>
5、代码控制切换主题
setTheme(),必须在setContentView(),绘画画面之前
重启当前画面:recreate()
当前画面改了,但是除了栈顶的活动画面,之后新打开画面可以是新的theme,之前在栈里存活的活动画面还是不能及时换theme,这个此处不写了,太多情况了,反正可以控制的。
//切换不同的风格,必须在setContentView之前做
if(useMyTheme){
setTheme(R.style.MyTheme);
}else{
setTheme(R.style.AppTheme);
}
setContentView(R.layout.activity_main);
btn_2 = findViewById(R.id.btn_2);
btn_2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
useMyTheme = !useMyTheme;
recreate(); //重启画面
}
});
android换主题功能,Android 切换主题风格(Theme换肤效果)相关推荐
- android 夜间模式功能,Android实现夜间模式切换功能实现代码
现在很多App都有夜间模式,特别是阅读类的App,夜间模式现在已经是阅读类App的标配了,事实上,日间模式与夜间模式就是给App定义并应用两套不同颜色的主题,用户可以自动或者手动的开启,今天用Andr ...
- android相册幻灯片功能,Android实现幻灯片式图片浏览器
我们来实现一个幻灯片式图片浏览器: 最下面一个画廊视图,选中画廊中的图片,会在上面的ImageSwitcher控件中显示大图. 效果图如图 实现方法: 在布局文件中添加图片切换控件ImageSwitc ...
- android 本地提醒功能,android中的本地定时推送到通知栏
一.使用系统定义的Notification 以下是使用示例代码: import android.app.Notification; import android.app.NotificationMan ...
- android app 天气功能,Android天气预报app改进版
最近总是有人来和我说我以前写的一个小app无法正常获取数据~Android简易版天气预报app 今天就又运行了下来查找问题,发现或许是接口有限制吧,不能在多台手机使用同个apikey 然后,发现了我写 ...
- android播放mp3功能,Android Studio实现简单音乐播放功能的示例代码
项目要求 基于Broadcast,BroadcastReceiver等与广播相关的知识实现简单的音乐播放功能,包括音乐的播放.暂停.切换.进度选择.音量调整. 设计效果 (进度条时间刷新功能还没有实现 ...
- android的UDC功能,Android实现搜索历史功能
本文实例为大家分享了Android实现搜索历史的具体代码,供大家参考,具体内容如下 SharedPreferences实现本地搜索历史功能,覆盖搜索重复的文本,可清空 1. 判断搜索内容是否含表情,不 ...
- android 添加附件功能,Android实现带附件的邮件发送功能
本文实例讲解了基于基于jmail实现android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助gmail app客户端,缺点是必须使用gmail帐号 ...
- android sharesdk分享功能,Android ShareSDK快速实现分享功能
第一步 :获取ShareSDK 为了集成ShareSDK,您首先需要到ShareSDK官方网站注册并且创建应用,获得ShareSDK的Appkey,然后到SDK的下载页面下载SDK的压缩包,解压以后可 ...
- android系统应用功能,Android系统应用(12)
如何成为系统应用 方法一:在Manifest中声明android:sharedUserId的值为:android.uid.system,android.uid.phone,android.uid.lo ...
最新文章
- Open Source的一些网站,自己收集来的
- Daily Scrum 11.5
- matlab_矩阵的灵活操作
- 158.5. manifests
- PHP,操作多个用户,多个线程的session,实现用户登陆状态session值的自动更新
- php学生选课系统设计网站作品
- Latex文本文档的排版
- access() 函数 c++
- linux shell脚本 定义变量,Shell脚本应用 - 编制shell脚本、shell变量
- 分享个B端产品分析报告
- 华为手机禁用省电精灵
- 手把手教你玩物联网(二)---onenet云平台产品创建
- 剑指offer——44.翻转单词顺序序列
- html 在线编辑pdf,iLoveIMG 一个完全免费的PDF文件处理网站,可在线编辑PDF文件
- 腾讯2019秋招--小q爬塔(dp)
- 使用ResNet-50实现图像分类任务
- 软件企业认定条件政策
- Navigation的简单使用
- Logic pro中插件的存储路径
- 上海交通大学2022年计算机考研复试分数线