关于android动态切换app主题颜色方案
来源:互联网 发布:物业管理收费软件app 编辑:程序博客网 时间:2024/04/29 22:56
1. 在attr.xml中 声明所需要的动态改变的颜色
<declare-styleable name="PagerSlidingTabStrip">
<attr name="pstsIndicatorColor" format="color" />
<attr name="pstsUnderlineColor" format="color" />
<attr name="pstsDividerColor" format="color" />
<attr name="pstsIndicatorHeight" format="dimension" />
<attr name="pstsUnderlineHeight" format="dimension" />
<attr name="pstsDividerPadding" format="dimension" />
<attr name="pstsTabPaddingLeftRight" format="dimension" />
<attr name="pstsScrollOffset" format="dimension" />
<attr name="pstsTabBackground" format="reference" />
<attr name="pstsShouldExpand" format="boolean" />
<attr name="pstsTextAllCaps" format="boolean" />
</declare-styleable>
2.在 stylesx.xml中 定义主题,给相应主题设置所需颜色值
<!--黑夜主题-->
<style name="BaseAppThemeNight" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">@color/bottom_navigation</item>
<item name="colorPrimaryDark">@color/bottom_navigation</item>
<item name="android:textColor">@color/black</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="bottom_navigation">@color/bottom_navigation</item>
<item name="common_entire">@color/common_entire</item>
<item name="common_background">@color/common_background</item>
<item name="stress_selected">@color/stress_selected</item>
<item name="icon_button_common">@color/icon_button_common</item>
<item name="icon_button_clicked">@color/icon_button_clicked</item>
<item name="content_background">@color/content_background</item>
<item name="icon_button_clicked2">@color/icon_button_clicked2</item>
<item name="info__click_avatar_strike">@color/info__click_avatar_strike</item>
<item name="icon_button_normal">@color/icon_button_normal</item>
<item name="important_fonts_title">@color/important_fonts_title</item>
<item name="guide_fonts">@color/guide_fonts</item>
<item name="secondary_fonts">@color/secondary_fonts</item>
<item name="special_fonts">@color/special_fonts</item>
</style>
3.layout.xml中引用色值
android:textColor="?attr/important_fonts_title"
android:background="?attr/common_entire"
4.在java代码中引用色值
TypedArray array = mContext.getTheme().obtainStyledAttributes(new int[] {
R.attr.important_fonts_title, //文字选中色
R.attr.guide_fonts, //文字未选中色
R.attr.stress_selected, //背景选中色
R.attr.common_background, //背景未选中色
});
int important_fonts_title = array.getColor(0, R.color.white);
int guide_fonts = array.getColor(1, R.color.white);
int stress_selected = array.getColor(2, R.color.white);
<declare-styleable name="PagerSlidingTabStrip">
<attr name="pstsIndicatorColor" format="color" />
<attr name="pstsUnderlineColor" format="color" />
<attr name="pstsDividerColor" format="color" />
<attr name="pstsIndicatorHeight" format="dimension" />
<attr name="pstsUnderlineHeight" format="dimension" />
<attr name="pstsDividerPadding" format="dimension" />
<attr name="pstsTabPaddingLeftRight" format="dimension" />
<attr name="pstsScrollOffset" format="dimension" />
<attr name="pstsTabBackground" format="reference" />
<attr name="pstsShouldExpand" format="boolean" />
<attr name="pstsTextAllCaps" format="boolean" />
</declare-styleable>
2.在 stylesx.xml中 定义主题,给相应主题设置所需颜色值
<!--黑夜主题-->
<style name="BaseAppThemeNight" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">@color/bottom_navigation</item>
<item name="colorPrimaryDark">@color/bottom_navigation</item>
<item name="android:textColor">@color/black</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="bottom_navigation">@color/bottom_navigation</item>
<item name="common_entire">@color/common_entire</item>
<item name="common_background">@color/common_background</item>
<item name="stress_selected">@color/stress_selected</item>
<item name="icon_button_common">@color/icon_button_common</item>
<item name="icon_button_clicked">@color/icon_button_clicked</item>
<item name="content_background">@color/content_background</item>
<item name="icon_button_clicked2">@color/icon_button_clicked2</item>
<item name="info__click_avatar_strike">@color/info__click_avatar_strike</item>
<item name="icon_button_normal">@color/icon_button_normal</item>
<item name="important_fonts_title">@color/important_fonts_title</item>
<item name="guide_fonts">@color/guide_fonts</item>
<item name="secondary_fonts">@color/secondary_fonts</item>
<item name="special_fonts">@color/special_fonts</item>
</style>
3.layout.xml中引用色值
android:textColor="?attr/important_fonts_title"
android:background="?attr/common_entire"
4.在java代码中引用色值
TypedArray array = mContext.getTheme().obtainStyledAttributes(new int[] {
R.attr.important_fonts_title, //文字选中色
R.attr.guide_fonts, //文字未选中色
R.attr.stress_selected, //背景选中色
R.attr.common_background, //背景未选中色
});
int important_fonts_title = array.getColor(0, R.color.white);
int guide_fonts = array.getColor(1, R.color.white);
int stress_selected = array.getColor(2, R.color.white);
int common_background = array.getColor(3, R.color.white);
5.最后记得设置你需要的Activity设置动态主题
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.BaseAppThemeNight);
}
或者直接设置application的主题
0 0
- 关于android动态切换app主题颜色方案
- Android主题切换方案
- Android app主题切换
- Android动态切换主题
- Android动态切换主题
- Android动态切换主题
- Android动态切换主题
- Android 动态切换主题
- Android实现app主题动态切换的两种方式
- Android实现切换主题颜色
- Android主题切换方案总结
- Android主题切换方案总结
- Android主题切换方案总结
- 不闪屏切换Android App主题
- Android 用户切换APP主题
- android 应用动态切换主题
- Android应用主题动态切换
- android 动态切换主题,动态换肤
- C++第3次上机实验
- webservice常用注解总结
- STM32启动过程详解
- 原生JavaScript实现列表/表格的增删查改
- 轮播图片切换(函数传参)
- 关于android动态切换app主题颜色方案
- 复杂的MVP
- Gulp介绍与Hexo优化
- Oracle事务概念
- maven中snapshot快照库和release发布库的区别和作用
- IOS Masonry介绍与使用实践:快速上手Autolayout
- Ubuntu Android Studio 报错unable to run mksdcard sdk
- 量子计算的能够破解RSA加密吗?
- c++实验3-项目1--个人所得税计算器