Android L+ Theme 与 Toolbar
原文地址:http://sunjiajia.com/2015/06/19/android-material-theme-and-toolbar/
Android L+(即安卓5.0以上)的主题
- 需要注意的是,5.0以上会多了一个Material的主题,一般使用的以下三个主题:
- @android:style/Theme.Material
- @android:style/Theme.Material.Light
- @android:style/Theme.Material.Light.DarkActionBar
- 与之对应的向下(L-)即5.0以下的兼容Theme:
- Theme.AppCompat
- Theme.AppCompat.Light
- 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);