Android主题切换功能

App一般会有多套颜色主题,下面介绍如何在App中添加主题切换功能:

  1. 先添加自定义属性,在values目录下新建attr.xml,根据主题中需要动态修改的颜色或者图片设定自定义属性



    
    
    
    
    
    
    
  1. 在colors.xml添加主题颜色配置



    #1afa29
    #afdd22
    #FF03DAC5
    #FF018786
    #FF000000
    #FFFFFFFF
    #1afa29
    #bfbfbf
    #000000
    #333333
    #666666
    #999999
    #CCCCCC
    #66CCCCCC

    #6699FF
    #3366FF
    #9999FF
    #6633FF
    #0000CC
    #0000FF
    #0033FF
    #0066FF
    #0099FF
    #00CCFF
  1. 配置themes.xml,设置不同颜色主题配置

 
    
  1. 界面配置设置的自定义属性


  1. 代码设置当前主题

        super.onCreate(savedInstanceState);
        int theme = MmkvUtil.getInstance().getInt(Constant.THEME_KEY);
        if (theme == Constant.THEME_BLUE){
            setTheme(R.style.Theme_JetpackDemo_Blue);
        }else {
            setTheme(R.style.Theme_JetpackDemo_main);
        }
        binding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());
  1. 选择切换主题

                        int theme = MmkvUtil.getInstance().getInt(Constant.THEME_KEY);
                        if (theme == Constant.THEME_BLUE){
                            MmkvUtil.getInstance().setInt(Constant.THEME_KEY,Constant.THEME_MAIN);
                        }else {
                            MmkvUtil.getInstance().setInt(Constant.THEME_KEY,Constant.THEME_BLUE);
                        }
                        Intent intent = new Intent(MainActivity.this,MainActivity.class);
                        intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                        startActivity(intent);
                        finish();
                        overridePendingTransition(0,0);

效果如下:

Android主题切换功能_第1张图片
Android主题切换功能_第2张图片
Android主题切换功能_第3张图片
Android主题切换功能_第4张图片

你可能感兴趣的:(android,java)