关于android动态切换app主题颜色方案

1. 在attr.xml中 声明所需要的动态改变的颜色

       
       
       
       
       
       
       
       
       
       
       
   


2.在 stylesx.xml中 定义主题,给相应主题设置所需颜色值

   

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的主题



你可能感兴趣的:(技术要点)