Android L+ Theme 与 Toolbar

原文地址:http://sunjiajia.com/2015/06/19/android-material-theme-and-toolbar/


Android L+(即安卓5.0以上)的主题

  • 需要注意的是,5.0以上会多了一个Material的主题,一般使用的以下三个主题:
  1. @android:style/Theme.Material
  2. @android:style/Theme.Material.Light
  3. @android:style/Theme.Material.Light.DarkActionBar
  • 与之对应的向下(L-)即5.0以下的兼容Theme:
  1. Theme.AppCompat
  2. Theme.AppCompat.Light
  3. Theme.AppCompat.Light.DarkActionBar
  • 为了使用以上的功能,我会自己在style.xml添加一个自己的主题,并在全局引用,下面的itme用于覆盖指定的属性,这里需要注意,我们不要原本的ActionBar,所以使用的是NoActionBar的主题,这样才能添加ToolBar
        <style name="Theme.MyMaterialTheme"parent="Theme.AppCompat.Light.NoActionBar"> 
            <item name="colorPrimary">#fd0000</item>
            <item name="colorPrimaryDark">#fda200</item>
            <item name="colorAccent">#FFFD00D7</item>
            <item name="android:textColorPrimary">#FF0C26FD</item>
        </style>
  • xml style属性:
    colorPrimaryDark:状态栏的颜色(可用来实现沉浸效果)
    colorPrimary: Toolbar的背景颜色 (xml中用android:background=”? attr/colorPrimary”指定)
    android:textColorPrimary:Toolbar中文字的颜色,设置后Menu Item的字体颜色也会跟随
    colorAccent:图中没有示例出来,这个是例如EditText正在输入时,RadioButton选中时的颜色(自己动手试下)

ToolBar的简单使用

   <!--创建Toolbar 需要设置全局的style -->
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        app:navigationIcon="@android:drawable/ic_menu_sort_by_size"
        app:subtitle="Sub Title"
        app:title="App Title" />

*其中的xml属性
app:title=”App Title”:Toolbar中的App Title
app:subtitle=”Sub Title” :Toobar中的小标题
app:navigationIcon=”@android:drawable/ic_menu_sort_by_size” : 导航图标(注意和Logo的区别)

*相应的Java也能控制ToolBar

        //注意:这个是使用ToolBar必须的,因为还是借用了Actionbar的位置去放置了toolBar
        Toolbar toolBar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolBar);
        toolBar.setTitle("人民大会堂");
        toolBar.setSubtitle("天安门");
        toolBar.setLogo(R.mipmap.ic_launcher);
        toolBar.setNavigationIcon(android.R.drawable.ic_menu_sort_by_size);

最后的效果(注意若低于5.0,状态栏是不会变色的)

最后的效果

posted @ 2016-03-04 18:20  暴走骑士  阅读(251)  评论(0编辑  收藏  举报