Android学习笔记--style theme浅尝

来源:互联网 发布:mysql和redis 的结合 编辑:程序博客网 时间:2024/05/17 03:59

   在应用程序开发中,其中最重要的就是用户界面的设计,一个好的应用必然有一个好的用户体验,在Android OS中Style风格的设计是提高用户体验的关键技术之一。在Android中有两种方式的风格Style和Theme

   1. 什么是Style?

   Style:是为View和window定义其视觉与风格的属性集合。它遵循的是与Web设计中层叠样式设计非常相似的设计理念--将内容与风格分开,如我们设计一个button,我们可以将button这个控件我们将其功能与它的视觉效果分开设计。所以在定义Style文件时要与layout中.xml文件分开。一般我们保存在/res/values文件下。

   2. 什么是Theme?

   Theme:它是一种适用于整个Activity或者Application的Sytle,也就是说Android所提供的两种Style,style是应用在控件之上,而theme是应用在整个窗体之上。

  Style的实现:我们以自定义一个对话框为例(在API Demo里有很多很好的例子)效果如图:

  

  首先我们要设计一个呈现给用户的对话框的风格,这里通过xml画一个简单的图形,在/res/drawble下建一个bg.xml文件:

 


 

   这是一个简单的画图效果,通过它我们可以设计我们的窗口风格,从SDK文档中我们可以看到它所有的属性:

 

  在定义这个xml文件的时候需要注意一点就是shape必须为跟节点,它主要属性为android:shape,用来定义填充view的图形形状:

           "rectangle" :矩形

         "oval"           :椭圆

         "line"            :水平线

         "ring"            :环形

  <gradient>用来定义渐变颜色

  android:angle: 用来定义颜色渐变的角度,为integer类型,0表示从左到右,90表示从下到上,该值必须为45的倍数;

  android:centerX:为渐变色中心相对X抽的位置范围从0到1.0,如果android:type="linear"时,该属性不可用;

  android:centerY:为渐变色中心相对Y抽的位置范围从0到1.0,如果android:type="linear"时,该属性不可用;

  android:centerColor:为可选值,中间色用来分开开始与结束色.

  <solid>定义填充色

  <stroke>定义边色以及边的形式为虚线还是实线以及粗细

  <corners>当shape为矩形时定义其四角为圆形角

 


 

以上简单介绍了下shape的应用,在定义完装载我们的view的窗口后我们定义其风格,在/res/values下建立一个styles.xml文件,如下:

 

其中resources为根节点,第一个<style>定义了其应用程序的风格,也就是activity的风格,而这里我们继续了android中Dialog的风格, name属性为我们定义的风格名称,parent的值为继承的风格的位置;

<style>下有个item元素,如第二个风格Text,这个是我们建立的用来实现TextView的风格,该下的元素item就是TextView的属性,每个item对应一个属性;

style样式的使用:

layout布局文件下建立一个.xml文件:

style="@style/Text"就实现了其风格的引用;

最后建立我们的Activity:

最后需要在AndroidManifet.xml文件下加入风格:

<activity android:name=".CustomDialogActivity"
      android:theme="@style/Theme.CustomDialog"></activity>

 


 

至此,大概效果已经实现了,许多详细的设计参考SDK文档。

 

 

-----------------------------------------------------------------------------------------水平有限,错误之处还望指教,谢谢~~

原创粉丝点击