Android M 特性大全

Android M(5.0  API21)特性大全

写在前面:参考5.0 MD 特性demo

demo的github地址:https://github.com/loonggg/MaterialDesignDemo

5.0 大纲图:

Android M 特性大全


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>

Android M 特性大全


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讲解

Android M 特性大全

  1. setNavigationIcon即设定 up button 的图标,因为 Material 的界面,在 Toolbar 这里的 up button 样式也就有别于 ActionBar 咯。
  2. setLogoAPP 的图标。
  3. setTitle 主标题。
  4. setSubtitle 副标题。
  5. 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);