Android(安卓)L+ Theme 与 Toolbar
16lz
2021-01-24
原文地址: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);
最后的效果(注意若低于5.0,状态栏是不会变色的)
更多相关文章
- Android(安卓)顶部状态栏覆盖到应用之上?
- android字符串处理(Mms模块短信内容解析)
- Android(安卓)setbackgroundcolor()方法的使用
- Android布局控件的继承关系
- Android(安卓)tips3
- android 中调用ajax的问题
- 【Android】Spannable实现文字高亮
- android中自定义view构造函数ContentItemView(Context context,
- android 自定义属性