Android M 特性大全
Android M(5.0 API21)特性大全
写在前面:参考5.0 MD 特性demo
demo的github地址:https://github.com/loonggg/MaterialDesignDemo5.0 大纲图:
1.增加view的点击波纹效果 和 沉浸式:
1.1 设置APP的主题:
<resources> <!-- Base application theme. --> <style name="AppBaseTheme" parent="Theme.AppCompat"> <!-- Theme.AppCompat 或者 Theme.AppCompat.Light 或者 Theme.AppCompat.Light.DarkActionBar --> <!-- customize the color palette --> <item name="colorPrimary">@color/colorPrimary</item> <!-- 设置 actionbar 颜色 --> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <!-- 设置 状态栏 颜色 -->
<item name="colorAccent">@color/colorAccent</item> <!-- 设置 checkbox等控件选中 颜色 -->
<item name="android:windowBackground">@color/windowBackground</item> <!-- 设置 APP背景 颜色 -->
<item name="android:textColorPrimary">@color/textColorPrimary</item> <!-- 设置 标题与更多选项中的文字,按钮的默认颜色 -->
<item name="colorControlHighlight">@color/colorControlHighlight</item> <!-- 设置 点击时 颜色 -->
<item name="colorControlActivated">@color/colorControlHighlight</item> <!-- 设置 获取焦点 颜色 -->
<item name="colorControlNormal">@color/colorControlNormal</item> <!-- 设置 各控件的预设,无焦点 颜色 -->
<item name="navigationBarColor">@color/navigationBarColor</item> <!-- 设置 底部导航栏 颜色 -->
</style>
</resources>
2. 夜间模式
2.1 白天模式:正常的设计颜色,主题继承 parent="Theme.AppCompat.DayNight" 系列
2.2夜间模式:需要在res下建立一个values-night文件夹,里面放着夜间主题样式的color等资源。 colors.xml 里的名字和values下的colors.xml 一致,只需更改颜色即可。
2.3 切换主题
boolean isNight = sp.getBoolean("night",false);
if (isNight) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);//使用亮色(light)主题,不使用夜间模式
sp.edit().putBoolean("night",false).commit();
}else {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);//使用暗色(dark)主题,使用夜间模式
sp.edit().putBoolean("night",true).commit();
}
recreate();
补充说明
AppCompatDelegate.setDefaultNightMode(int mode);
这里的mode有四个可选值,分别是:
* MODE_NIGHT_NO: 使用亮色(light)主题,不使用夜间模式
* MODE_NIGHT_YES:使用暗色(dark)主题,使用夜间模式
* MODE_NIGHT_AUTO:根据当前时间自动切换 亮色(light)/暗色(dark)主题
* MODE_NIGHT_FOLLOW_SYSTEM(默认选项):设置为跟随系统,通常为MODE_NIGHT_NO
3. ToolBar讲解
- setNavigationIcon即设定 up button 的图标,因为 Material 的界面,在 Toolbar 这里的 up button 样式也就有别于 ActionBar 咯。
- setLogoAPP 的图标。
- setTitle 主标题。
- setSubtitle 副标题。
- setOnMenuItemClickListener设置选项菜单各按钮的处理事件。
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); // App Logo toolbar.setLogo(R.drawable.ic_launcher); // Title toolbar.setTitle("My Title"); // Sub Title toolbar.setSubtitle("Sub title"); setSupportActionBar(toolbar); // setNavigationIcon 要在 setSupoortActionBar 之后才有作用 // 否则会出現 back button toolbar.setNavigationIcon(R.drawable.ab_android);