MaterialDesign介绍和初步使用

来源:互联网 发布:mysql 查询成绩最高分 编辑:程序博客网 时间:2024/06/05 13:32

MaterialDesign介绍和初步使用

一、关于Material Design
从Android5.0开始引入的,是一种全新的设计语言(翻译为“原材料设计”),其实是谷歌提倡的一种设计风格、理念、原则。
拟物设计:IOS最开始使用,是扁平化设计一种结合体验。还吸取了最新一些科技理念。
层次感:View Z轴 (比如按下去阴影效果,加强3D效果)

  • 1.对于美工:遵循MD的界面设计、图标合集。
  • 2.对于产品经理:遵循MD界面设计、页面的跳转及动画效果、交互设计。
  • 3.对于开发人员:参与原型设计、辅助美工原型设计的素材准备。开发实现MD的设计—-界面、动画、转场动画等等。

二、MD的使用及开发
谷歌开放以及收集了一些最新的开源的项目(很多是自己开发的),汇集到最新的support兼容支持包以及最新的5.X API里面。(preference:设置页面,可以通过配置文件达到界面设计的效果。)
(1)android-support-v4:
最低兼容到Android 1.6系统,里面有类似ViewPager等控件。

(2)android-support-v7:
appcompat;
CardView;
gridlayout;
mediarouter;
palette;
preference;
recyclerView(最低兼容到3.0)
最低兼容到Android 2.1的系统,这个工程可以让开发人员统一开发标准,在任何的系统版本下保证兼容性。(比如:Theme,value,布局,新的控件,新的动画特效实现)
所以现在ADT、AndrodStudio一般都会直接创建项目的时候就直接帮你新建或者引入了一个叫做appcompat的项目。

可能会碰到很多问题:
1.自动导入的appcompat-v7项目自身就是报错的,什么原因?
(1)build的版本太低了,要么是SDK很新但是兼容包没有更新(建议编译的时候采用6.0版本)。
(2).没有将依赖的项目作为library,而且也没有将自己的项目加入该依赖项目。
(3).multiple dex files…
appcompat/res/com.android.v7.R$anim 有文件冲突–一般是代表jar包冲突。解决方法:删掉重复的jar。

2.appcompat-v7好不容易没报错,但是项目报错,一看控制台:
报appcompat里面的某个res/values/theme/xxx属性不存在 等等问题。
原因:因为你引入的是很新的appcompat-v7项目,它要求必须很高的版本编译,然而Eclipse很蛋疼,在引入该项目的主项目编译的时候也必须要达到这个很高的版本—直接使用最高版本编译)

现在一般做开发都是最低兼容到4.0。
SDK升级:API升级、兼容包的升级、工具升级。

Android创建项目的时候版本说明:
1.compileSDK 编译版本;
2.minSDK 兼容到最低版本是多少;
3.targetSDK;
SDK更新的历史上几个特别重要的版本:14(4.0)、19(4.4)、21(5.0)

关于Eclipse项目如何导入到AndroidStudio。
1.直接导入没问题;
2.有问题,导出项目的时候应该选择gradle模式导出, 再导入到as。(这种情况下都有可能还是报错,可能是gradle版本太低了 需要升级!)
3.直接在as里面建个项目,然后把所有的资源和代码拷贝过去 就可以了!

三、实例
1.MaterialDesign控制项目全局样式
(1).引入appcompat-v7项目(包括了android-support-v7-appcompat.jar和资源文件)
(2).写自己的全局样式:

 <style name="AppBaseTheme"parent="Theme.AppCompat.Light">       <!-- API 14 theme customizations can go here. --> </style>       <!-- Application theme. 自定义主题风格的颜色-->    <style name="AppTheme" parent="AppBaseTheme">        <!-- All customizations that are NOT specific to a particular API-level can go here. -->        <item name="android:textColor">@color/mytextcolor</item>        <item name="colorPrimary">@color/colorPrimary_pink</item>        <item name="colorPrimaryDark">@color/colorPrimary_pinkDark</item>        <item name="android:windowBackground">@color/background</item>    <item name="colorAccent">@color/accent_material_dark</item>     <!-- 设置虚拟导航栏背景颜色 -->        <item name="android:navigationBarColor">@color/colorPrimary_pink</item>    </style><!--     colorPrimary:主色,    colorPrimaryDark:主色--深色,一般可以用于状态栏颜色、底部导航栏    colorAccent:(代表各个控件的基调颜色--CheckBox、RadioButton、ProgressBar等等)    "android:textColor":当前所有的文本颜色 -->

效果图
在项目中,可以给不同系统版本设置对应的主题风格:
即在项目总监理values的版本:比如values-11、values-14、values-21
这里写图片描述

2.MaterialDesign兼容性控件的使用
尤其是在appcompat-V7里面有很多为兼容而生的控件
这样就可以做到高低版本和不同的ROM之间体验一致!还可以配合appcompat的主题使用达到体验一致性
(1).android.support.v7.app.AlertDialog

(2).进度条样式设置

 style="@style/Widget.AppCompat.ProgressBar.Horizontal"

(3).SwipeRefreshLayout下拉刷新

(4).弹出窗口:
PopupWindow
ListPopupWindow
PopupMenu

(5).android.support.v7.widget.LinearLayoutCompat
给包裹在里面的所有子

 <android.support.v7.widget.LinearLayoutCompat            android:layout_width="match_parent"            android:layout_height="match_parent"  app:divider="@drawable/abc_list_divider_mtrl_alpha"            app:showDividers="beginning|middle"            android:orientation="vertical" >
0 0
原创粉丝点击