Android应用动态修改主题的方法示例

 更新时间:2019年03月30日 10:16:42   作者:天人人  
今天小编就为大家分享一篇关于Android应用动态修改主题的方法示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

1.使用API设置主题

如下所示,在Activity中使用setTheme

setTheme(R.style.MyTheme1);

2.调用API的时机

需要在super.onCreate(savedInstanceState)之前调用setTheme

3.重新设置主题

要重新设置主题,则需要结束Activity,重新启动才可以

public class MainActivity extends Activity {
  private TextView tv;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    if(MyApplication.SHOW_THEME_FLAG == MyApplication.SHOW_1_THEME_FLAG){
      setTheme(R.style.MyTheme2);
    }else if(MyApplication.SHOW_THEME_FLAG == MyApplication.SHOW_2_THEME_FLAG){
      setTheme(R.style.MyTheme1);
    }
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tv = findViewById(R.id.tv);
    getActionBar().show();
    getActionBar().setTitle("ActionBar Title");
    tv.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        if(MyApplication.SHOW_THEME_FLAG == MyApplication.SHOW_1_THEME_FLAG){
          MyApplication.SHOW_THEME_FLAG = MyApplication.SHOW_2_THEME_FLAG;
        }else if(MyApplication.SHOW_THEME_FLAG == MyApplication.SHOW_2_THEME_FLAG){
          MyApplication.SHOW_THEME_FLAG = MyApplication.SHOW_1_THEME_FLAG;
        }
        Intent mIntent = getIntent();
        finish();
        overridePendingTransition(0,0);
        startActivity(mIntent);
      }
    });
  }
}

4.常用主题style设置

  <style name="MyTheme1" parent="@android:style/Theme.Material">
    <!-- 状态栏 -->
    <item name="android:colorPrimaryDark">#f00</item>
    <!-- ActionBar颜色 -->
    <item name="android:colorPrimary">#ff0</item>
    <!-- 界面背景色 -->
    <item name="android:windowBackground">@color/windowBackgroundColor1</item>
    <!-- 导航栏颜色 -->
    <item name="android:navigationBarColor">#0000ff</item>
  </style>
  <style name="MyTheme2" parent="@android:style/Theme.Material">
    <!-- 状态栏 -->
    <item name="android:colorPrimaryDark">#757575</item>
    <!-- ActionBar颜色 -->
    <item name="android:colorPrimary">#03A9F4</item>
    <!-- 界面背景色 -->
    <item name="android:windowBackground">@color/windowBackgroundColor2</item>
    <!-- 导航栏颜色 -->
    <item name="android:navigationBarColor">#1976D2</item>
  </style>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • Flutter实现悬浮分组列表功能

    Flutter实现悬浮分组列表功能

    这篇文章主要介绍了Flutter-实现悬浮分组列表,我们将介绍如何使用 Flutter 实现一个带有分组列表的应用程序,我们将通过 CustomScrollView 和 Sliver 组件来实现该功能,需要的朋友可以参考下
    2024-08-08
  • Android制作一个锚点定位的ScrollView

    Android制作一个锚点定位的ScrollView

    这篇文章主要介绍了Android制作一个锚点定位的ScrollView,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下
    2021-04-04
  • Android中库项目的使用方法图文介绍

    Android中库项目的使用方法图文介绍

    类似开发其他Java应用一样,我们可以将可复用的代码,打成一个jar包,供所有需要的项目使用。这样,可以解决很大一部分代码复用的问题,本文将详细介绍,需要了解的朋友可以参考下
    2012-12-12
  • Android进程保活之提升进程优先级

    Android进程保活之提升进程优先级

    这篇文章主要介绍了Android进程保活之提升进程优先级,对提升优先级感兴趣的同学可以参考下
    2021-04-04
  • Android侧滑菜单和轮播图之滑动冲突问题

    Android侧滑菜单和轮播图之滑动冲突问题

    这篇文章主要介绍了Android侧滑菜单和轮播图之滑动冲突问题,需要的朋友可以参考下
    2017-06-06
  • android 权限大全 分享

    android 权限大全 分享

    今天上课老师提问访问权限,好多都没答上来,特意收集整理了放上来
    2013-06-06
  • Android自定义View实现拼图小游戏

    Android自定义View实现拼图小游戏

    这篇文章主要为大家详细介绍了Android自定义View实现拼图小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Android共享元素动画效果显示问题解决

    Android共享元素动画效果显示问题解决

    什么是共享元素呢?可以理解为当页面跳转是,看起来一个View属于界面A又属于界面B,下面这篇文章主要给大家介绍了关于Android共享元素动画效果显示问题的相关资料,需要的朋友可以参考下
    2022-02-02
  • 详解Android使用Html.fromHtml需要注意的地方

    详解Android使用Html.fromHtml需要注意的地方

    本篇文章主要介绍了详解Android使用Html.fromHtml需要注意的地方,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • android编程之多线程编程实例分析

    android编程之多线程编程实例分析

    这篇文章主要介绍了android编程之多线程编程,实例分析了Android多线程程序设计的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04

最新评论