Material Design系列之配色设置

我们先来看一张图,我从Using Material Theme上面download下来的:

  一目了然,每个属性什么意思应该不用我再多加解释了吧。下面我来看看怎么配置这些属性,工程的配置以及ToolBar的配置跟上一篇博客一样,不清楚的可以参考ToolBar即将取代ActionBar,第一步你需要在res目录下新建values-v21文件夹,因为某些属性在Lollipop上要单独适配,具体配置如下:

values/themes.xml

 1 <resources> 2   <!-- Base application theme. --> 3   <style name="AppTheme.Base" parent="Theme.AppCompat"> 4     <!-- Customize your theme here. --> 5     <item name="windowActionBar">false</item> 6     <item name="android:windowNoTitle">true</item> 7     <!-- Material Design setup--> 8     <item name="colorPrimary">@color/theme_color_primary</item> 9     <item name="colorPrimaryDark">@color/theme_color_primary_dark</item>10     <item name="android:textColorPrimary">@color/theme_text_color_primary</item>11     <item name="android:windowBackground">@color/white</item>12   </style>13 14   <style name="AppTheme" parent="AppTheme.Base">15   </style>16 </resources>

values-v21/themes.xml

1 <resources>2   <style name="AppTheme" parent="AppTheme.Base">3     <item name="android:navigationBarColor">@color/theme_color_primary</item>4   </style>5 </resources>

  细心的朋友应该能发现,为什么有的属性有android前缀,有的没有,那是因为colorPrimary和colorPrimaryDark是Material Design才添加的属性,为了适配较低版本的系统只能在AppCompat下这样使用。虽然colorPrimaryDark可以在默认themes中配置,但是即使设置了也没有效果,另外navigationBarColor只能在Lollipop上才能修改,低版本没有这样的权限。为了看到效果的对比,我准备了两个模拟器,下面的贴图从上往下顺序均为Nexus4 4.1.1和Nexus4 5.1.0:

  从上图效果对比来看,Lollipop的整体效果要好很多,这里顺便给大家推荐一个Material Design的调色盘网站,大家在写Demo练习的时候可以在上面找颜色参考一下,再也不用为了选一个颜色纠结了。

  下面我们继续介绍一些View控件的配色,以Button,EditText,CheckBox和SwitchCompat(PS:虽说现在项目的minSdkVersion都是14+了,完全可以直接用系统的Switch控件,但是想要在4.x版本使用Material Design风格的Switch控件还得靠AppCompat-V7中的SwitchCompat)为例,我们先看一下效果图,系统顺序不变:

  layout的配置我就不贴了,只是单纯的id,width和height之类的最基本的配置,下面我们来看看theme的配置:

 1 <resources> 2   <!-- Base application theme. --> 3   <style name="AppTheme.Base" parent="Theme.AppCompat"> 4     <!-- Other setup ...... --> 5     <!-- Color control setup--> 6     <item name="colorControlNormal">@color/theme_color_control_normal</item> 7     <item name="colorControlHighlight">@color/theme_color_control_highlight</item> 8     <!--<item name="colorControlActivated">@color/theme_color_control_activated</item>--> 9     <item name="colorAccent">@color/theme_color_accent</item>10     <item name="colorSwitchThumbNormal">@color/theme_color_control_normal</item>11   </style>12 13   <style name="AppTheme" parent="AppTheme.Base">14     <item name="colorButtonNormal">@color/theme_color_accent</item>15   </style>16 </resources>

values-v21/themes.xml

1 <resources>2   <style name="AppTheme" parent="AppTheme.Base">3     <!-- navigationBar setup ...... -->4     <item name="android:colorButtonNormal">@color/theme_color_accent</item>5   </style>6 </resources>

  这回添加的参数就没那么好理解了,下面来一个个解释:

  1. colorButtonNormal:normal状态下Button的背景色

  2. colorSwitchThumbNormal:normal状态或者是close状态下的Switch thumb的配色

  3. colorControlNormal:control类控件normal状态下的配色,此类控件包括CheckBox,RadioButton,EditText等。注意:ToolBar上默认icon的颜色也受此属性影响(HomeAsUpIndicator,隐藏menu的icon),不信请仔细观察上述效果图

  4. colorControlHighlight:control类控件hightlight状态下的配色,相当于pressed状态

  5. colorControlActivated:control类控件checked或者selected等选中状态下的配色

  6. colorAccent:colorControlActivated的默认值,没有配置colorControlActivated情况下生效

  可能有朋友会有疑问,为什么在values-v21下还要配一次android:colorButtonNormal,在默认values下不是已经配过colorButtonNormal了嘛?我也不知道为什么,调试的时候发现,如果values-v21下不配置的话,就是没有效果,所以还得加上。

  最后还要给大家介绍一下drwodown menu的配色定制,也就是menu文件中showAsAction为never的items的呈现。为了满足这一需求,需要自定义popuptheme:

1 <style name="MyPopupTheme" parent="Base.ThemeOverlay.AppCompat.Light">2   <item name="android:textColor">@color/white</item>3   <item name="android:colorBackground">@color/theme_color_primary</item>4 </style>

然后在layout文件中给ToolBar配上即可:

1 <android.support.v7.widget.Toolbar2   android:id="@+id/toolbar"3   android:layout_width="match_parent"4   android:layout_height="wrap_content"5   android:minHeight="?attr/actionBarSize"6   android:background="?attr/colorPrimary"7   app:popupTheme="@style/MyPopupTheme"/>

属性都比较简单就不再啰嗦了,再来一张Lollipop的效果图吧:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我认为Ant DesignMaterial Design都有自己的优势和劣势。Ant Design更注重易用性和用户体验,而Material Design则更加侧重于实现设计的统一性。因此,取决于您想要实现什么样的目标,其中一个可能更有用。 ### 回答2: Ant DesignMaterial Design都是非常受欢迎的UI设计风格,它们都有各自的优势和劣势。 首先,Ant Design具有很高的定制性和可扩展性。Ant Design提供了丰富的组件和严谨的设计规范,使得开发人员可以根据自己的需求自由地定制和扩展组件。它还提供了全面的文档和示例,使开发过程更加高效和便捷。此外,Ant Design还有一个活跃的社区,开发人员可以在社区中交流和分享经验,获得帮助和支持。 Material Design则注重于整体的视觉效果和动画效果。Material Design通过使用平面设计和卡片式布局,使界面看起来干净、现代和直观。它还提供了一整套动画效果和过渡效果,使用户与应用程序的交互更加流畅和自然。Material Design还强调响应式设计,可以在各种设备上提供一致的用户体验。 然而,Ant Design的定制性也可能带来一些问题。由于组件的定制性较高,开发人员需要对组件进行深入的了解和掌握,才能充分发挥其优势。而且,由于Ant Design的设计规范较为严格,可能需要更多的开发时间和精力来确保符合规范。 Material Design的重视视觉和动画效果也可能在一些情况下过于突出。在某些应用场景下,过多的动画效果可能会影响用户的操作流程,并导致用户体验下降。 综上所述,Ant DesignMaterial Design都是优秀的UI设计风格,它们各自有其特点和优势。选择哪种设计风格主要取决于具体的项目需求、开发团队的技术水平和个人偏好。 ### 回答3: ant designmaterial design是当下非常流行的UI设计规范,它们分别来自于中国和谷歌。 首先,ant design注重面向企业应用的设计,注重实用性和功能性。它的设计风格简洁、大气,注重传达信息,给人一种严肃、专业的感觉。ant design的界面元素更加直观,易于理解和操作,特别适合在企业级应用中使用。此外,ant design提供了丰富的组件和模板,可以快速搭建起用户友好的界面。然而,ant design的主题和配色相对较为保守,缺乏一些视觉上的创新和时尚感。 而material design则注重用户体验和美学设计。它强调材料与现实世界之间的联系,以及2D和3D世界的结合。material design的设计风格更加生动、有趣,使用了丰富的动画、颜色和阴影效果,使用户界面更具吸引力和灵活性。此外,material design的设计原则相对简单,易于理解和应用。然而,material design的风格更适合于消费类应用而不是企业级应用,以及对移动端的适配较好。 综上所述,ant designmaterial design在设计风格、用途和适应性方面有所不同。ant design适合于企业级应用,注重实用性和功能性;而material design适合于消费类应用,注重用户体验和美学设计。无论选择哪种设计规范,都要根据具体的应用场景和用户需求来评估和选择,以提供最佳的用户体验和界面设计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值