MaterialDesign是google在Android(Lollipop/5.0)中推出的新的设计语言,谷歌希望由此来统一各种平台上的用户体验,Material Design的特点是干净的排版和简单、扁平化的布局,以此来突出内容。
一、theme
在项目中使用MaterialDesignTheme:设置应用的targetSdkVersion为21,在style.xml中自定义theme继承android:Theme.Material,AndroidManifest中设置Application或者Activity的theme。google官方提供了三种Material Design样式:Theme.Material、Theme.Material.Light、Material.Light.DarkActionBar。低版本兼容性:Material Design主题只有在API级别为21以上才可使用,低版本如果要使用需要创建value-21资源目录,使用Material Design风格主题,在其他版本使用v7的Theme.AppCompat主题。
这个网站可以生成Material ThemeColor的xml:www.materialpalette.com/teal/teal
二、Transition
在5.0之前,activity跳转的时候,如果需要设置一个动画,我们通常可以通过overridePendingTransition(int enterAnim, int exitAnim)来设置一个B的进入动画和A的退出动画,但是这种方式是针对页面全局的元素。所以5.0以后Api提供了Transition动画。
系统提供的四种动画场景:
(1)setExitTransition() - 当A start B时,使A中的View退出场景的transition
(2)setEnterTransition() - 当A start B时,使B中的View进入场景的transition
(3)setReturnTransition() - 当B 返回 A时,使B中的View退出场景的transition
(4)setReenterTransition() - 当B 返回 A时,使A中的View进入场景的transition
系统提供的动画效果:
explode(分解)—— 进入/退出从屏幕中间移动视图;
slide(滑动)——进入/退出从屏幕边沿石洞视图;
fade(淡出)——通过改变屏幕上视图的不透明度达到进入/退出视图的效果
过渡动画:
要使用transition需要在values-21下的style定义theme
一、theme
在项目中使用MaterialDesignTheme:设置应用的targetSdkVersion为21,在style.xml中自定义theme继承android:Theme.Material,AndroidManifest中设置Application或者Activity的theme。google官方提供了三种Material Design样式:Theme.Material、Theme.Material.Light、Material.Light.DarkActionBar。低版本兼容性:Material Design主题只有在API级别为21以上才可使用,低版本如果要使用需要创建value-21资源目录,使用Material Design风格主题,在其他版本使用v7的Theme.AppCompat主题。
这个网站可以生成Material ThemeColor的xml:www.materialpalette.com/teal/teal
二、Transition
在5.0之前,activity跳转的时候,如果需要设置一个动画,我们通常可以通过overridePendingTransition(int enterAnim, int exitAnim)来设置一个B的进入动画和A的退出动画,但是这种方式是针对页面全局的元素。所以5.0以后Api提供了Transition动画。
系统提供的四种动画场景:
(1)setExitTransition() - 当A start B时,使A中的View退出场景的transition
(2)setEnterTransition() - 当A start B时,使B中的View进入场景的transition
(3)setReturnTransition() - 当B 返回 A时,使B中的View退出场景的transition
(4)setReenterTransition() - 当B 返回 A时,使A中的View进入场景的transition
系统提供的动画效果:
explode(分解)—— 进入/退出从屏幕中间移动视图;
slide(滑动)——进入/退出从屏幕边沿石洞视图;
fade(淡出)——通过改变屏幕上视图的不透明度达到进入/退出视图的效果
过渡动画:
要使用transition需要在values-21下的style定义theme
<style
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
<item name="android:windowEnterTransition">@android:transition/explode</item>
<item name="android:windowExitTransition">@android:transition/explode</item>
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
</style>