Android 5.0 M特性 样式设置

修改styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
   <!-- Customize your theme here. --> 
   <!--导航栏底色-->
   <itemname="colorPrimary">@color/accent_material_dark</item> 
   <!--状态栏底色--> 
   <itemname="colorPrimaryDark">@color/accent_material_light</item> 
    <!--导航栏上的标题颜色--> 
   <itemname="android:textColorPrimary">@android:color/black</item> 
   <!--Activity窗口的颜色--> 
   <itemname="android:windowBackground">@color/material_blue_grey_800</item> 
   <!--按钮选中或者点击获得焦点后的颜色--> 
   <itemname="colorAccent">#00ff00</item> 
   <!--和 colorAccent相反,正常状态下按钮的颜色--> 
   <itemname="colorControlNormal">#ff0000</item> 
   <!--Button按钮正常状态颜色--> 
   <itemname="colorButtonNormal">@color/accent_material_light</item> 
   <!--EditText 输入框中字体的颜色--> 
   <itemname="editTextColor">@android:color/white</item> </style>
相关属性说明

1.colorPrimary: Toolbar导航栏的底色。
2.colorPrimaryDark:状态栏的底色,注意这里只支持Android5.0以上的手机。
3.textColorPrimary:整个当前Activity的字体的默认颜色。
4.android:windowBackground:当前Activity的窗体颜色。
5.colorAccent:CheckBox,RadioButton,SwitchCompat等控件的点击选中颜色
6.colorControlNormal:CheckBox,RadioButton,SwitchCompat等默认状态的颜色。
7.colorButtonNormal:默认状态下Button按钮的颜色。
8.editTextColor:默认EditView输入框字体的颜色。

一、Flat Button

** 一个在按下的时候会展现墨水散开的效果但没有凸起效果由墨水形成的按钮。**


在** layout.xml**内的任意位置声明你的 Button并设置 **Borderless **样式.

 <Button 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"
    style="@style/Widget.AppCompat.Button.Borderless"/>

如何设置样式?


在你的 styles.xml内定义自定义样式。

<style name="MyButton" parent="Theme.AppCompat.Light">  
  <item name="colorControlHighlight">@color/pink</item>
</style>

通过 android:theme属性应用这个样式到你的 Button

<Button  
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Button"
   android:theme="@style/MyButton"
   style="@style/Widget.AppCompat.Button.Borderless"/>

二、Raised Button

一个典型的矩形 material 按钮在手指抬起和按下的时候会展现墨水在纸上散开的效果。


在** layout.xml**内的任意位置声明你的 Button

<Button  
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"/>

如何设置样式?


在你的** styles.xml**内定义自定义样式。

<style name="MyButton" parent="Theme.AppCompat.Light">  
    <item name="colorControlHighlight">@color/indigo</item>
    <item name="colorButtonNormal">@color/pink</item>
</style>  

通过 android:theme属性应用这个样式到你的 Button

<Button  
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"
    android:theme="@style/MyButton"/>

兼容性问题

I. 切换 Button

按下状态的颜色你可以使用主题的 colorControlHighlight
属性,虽然它仅仅影响 Lollipop 版本的系统。

II. Android elevation

只在 Lollipop 设备上有效,因此你在 Lollipop 之前的设备上将看不到 Button
周围的阴影。

三、Radio Button


在** layout.xml文件内任意位置声明你的RadioButton**

<RadioButton  
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:checked="true"
   android:text="Radio Button"/>

如何设置样式?

styles.xml文件内声明你的自定义样式.

<style name="MyRadioButton" parent="Theme.AppCompat.Light">
    <item name="colorControlNormal">@color/indigo</item>
     <item name="colorControlActivated">@color/pink</item>
</style> 

通过 android:theme属性将这个样式应用到你的 RadioButton

<RadioButton  
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:checked="true"
    android:text="Radio Button"
    android:theme="@style/MyRadioButton"/>

四、Switch

On/off Switches 切换可以设置单选状态。开关控制的选项,以及它所处的状态,应该通过与它对应一致的内部标签明确地展示出来,以达到与 radio button(单选按钮)相同的视觉效果。
on/off 滑动开关用文字标示 “on” 和 “off” 的做法已被弃用。请用文首所示图例来代替。


在任意的** layout.xml文件内声明你的 SwitchCompat** 。

<android.support.v7.widget.SwitchCompat  
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:checked="true" />

**SwitchCompat **是 **Switch **控件的向下兼容版本。

如何设置样式?

在你的 styles.xml 文件内声明自定义样式。

<style name="MySwitch" parent="Theme.AppCompat.Light">  
    <!-- active thumb & track color (30% transparency) -->
    <item name="colorControlActivated">@color/indigo</item>
    <!-- inactive thumb color -->
    <item name="colorSwitchThumbNormal">@color/pink</item>
    <!-- inactive track color (30% transparency) -->
    <item name="android:colorForeground">@color/grey</item>
</style>  

在你的 SwitchCompat声明里设置 android:theme的属性值为你自定义的样式。

<android.support.v7.widget.SwitchCompat  
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:checked="true"
   android:theme="@style/MySwitch" />

**Android **会自动给 SwitchCompatcolorControlActivated 和 **android:colorForeground **增加 30% 的透明度。

五、Text field

允许用户输入文本,选择文本(剪切,复制,粘贴),通过自动补全检索查询数据。
在任意的** layout.xml文件内声明你的 EditText**。

<EditText  
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:hint="Hint text" />

如何设置样式?

在你的 styles.xml文件内声明自定义样式。

<style name="MyEditText" parent="Theme.AppCompat.Light">  
    <item name="colorControlNormal">@color/indigo</item>
    <item name="colorControlActivated">@color/pink</item>
</style>   

在你的 EditText声明里设置 android:theme的属性值为你自定义的样式。

<EditText  
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:hint="Hint text"
   android:theme="@style/MyEditText" />

兼容性问题

I. 在不同的Android 版本里,EditText的高度和垂直对齐方式是不同的。
II. 行背景在 Android 4.0-4.4和** 6.0 **上是不透明的,而在 **5.0 **和 5.1 上是半透明的。

Single-line text field
当输入光标到达输入框右边缘时,文本框的内容会自动滚动到左边。

要让你的 EditText为单行,需要添加 android:singleLine属性,并且设置其值为** true**。

<EditText  
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:singleLine="true"
   android:hint="Hint text" />

Multi-line text field 当光标达到输入框边缘时,文本框会为溢出的文字自动增加一行,以使文本可以垂直滚动。

要让你的 EditText为多行,需要添加 android:inputType属性,并且设置其值为** textMultiLine** 。

<EditText  
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="textMultiLine"
    android:hint="Hint text" />

Full-width text field
(和父布局等宽)适用于更深入复杂的工作。在你的 styles.xml中声明你自定义的样式。

 <style name="FullWidthEditText" parent="Widget.AppCompat.EditText">  
    <item name="android:padding">20dp</item>
    <item name="android:background">@null</item>
    <itemname="android:textSize">@dimen/abc_text_size_subhead_material</item>
</style>   

在你的** EditText**声明里设置 style属性值为你自定义的样式。

<EditText  
   style="@style/FullWidthEditText"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:hint="Subject" />

六、Check Box

允许用户从一组选项中选择多个选项。
如果你有多个选项出现在列表中,你可以通过使用 Checkboxes 代替 on/off Switches 来节省空间。
如果你只有一个选项,避免使用一个 Checkbox,但是可以使用一个 on/off switch。

layout.xml文件内任一位置声明你的** CheckBox**

<CheckBox  
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:checked="true"
   android:text="Check Box"/>

如何设置样式?

styles.xml文件内声明你的自定义样式.

<style name="MyCheckBox" parent="Theme.AppCompat.Light">  
   <item name="colorControlNormal">@color/indigo</item>
   <item name="colorControlActivated">@color/pink</item>
</style>  

将这个样式通过** android:theme**属性应用到你的 CheckBox.

<CheckBox  
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:checked="true"
   android:text="Check Box"
   android:theme="@style/MyCheckBox"/>

样式的介绍就到这里了,下次和大家分享FloatingActionButton
谢谢大家耐心的看完!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,123评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,031评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,723评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,357评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,412评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,760评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,904评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,672评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,118评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,456评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,599评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,264评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,857评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,731评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,956评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,286评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,465评论 2 348

推荐阅读更多精彩内容