本文来自 http://blog.csdn.net/hellogv/ ,引用必须注明出处!

越来越多互联网企业都在Android平台上部署其客户端,为了提升用户体验,这些客户端都做得布局合理而且美观.......Android的Style设计就是提升用户体验的关键之一。Android上的Style分为了两个方面:

  1. Theme是针对窗体级别的,改变窗体样式;
  2. Style是针对窗体元素级别的,改变指定控件或者Layout的样式。

Android 系统的themes.xml和style.xml(位于/base/core/res/res/values/)包含了很多系统定义好的style,建议 在里面挑个合适的,然后再继承修改。以下属性是在Themes中比较常见的,源自Android系统本身的themes.xml:

view plain copy to clipboard print ?
  1. <!--Windowattributes-->
  2. < item name = "windowBackground" > @android:drawable/screen_background_dark </ item >
  3. < item name = "windowFrame" > @null </ item >
  4. < item name = "windowNoTitle" > false </ item >
  5. < item name = "windowFullscreen" > false </ item >
  6. < item name = "windowIsFloating" > false </ item >
  7. < item name = "windowContentOverlay" > @android:drawable/title_bar_shadow </ item >
  8. < item name = "windowTitleStyle" > @android:style/WindowTitle </ item >
  9. < item name = "windowTitleSize" > 25dip </ item >
  10. < item name = "windowTitleBackgroundStyle" > @android:style/WindowTitleBackground </ item >
  11. < item name = "android:windowAnimationStyle" > @android:style/Animation.Activity </ item >
<!-- Window attributes --> <item name="windowBackground">@android:drawable/screen_background_dark</item> <item name="windowFrame">@null</item> <item name="windowNoTitle">false</item> <item name="windowFullscreen">false</item> <item name="windowIsFloating">false</item> <item name="windowContentOverlay">@android:drawable/title_bar_shadow</item> <item name="windowTitleStyle">@android:style/WindowTitle</item> <item name="windowTitleSize">25dip</item> <item name="windowTitleBackgroundStyle">@android:style/WindowTitleBackground</item> <item name="android:windowAnimationStyle">@android:style/Animation.Activity</item>

至于控件的Style设计就范围大多了,看看Eclipse的Android控件属性编辑器[Properties]就大概知道有哪些条目 , 而Android内置的style.xml也只是定义每个控件的默认样式而已....不过控件的style不建议大改,耐看的style更能让用户长时间 使用软件。另外,控件的Style在很多情况下都用到9.png,学习9.png就必须到/base/core/res/res/drawable- hdpi里面看看,里面有很多系统内置的9.png。

PS:为了研究Android的Style和Theme,强烈建议下载Android的base.git!

接下来看看本文程序的效果图:

本文程序的themes.xml代码如下,自定义了WindowTitle,:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
<!--继承Android内置的Theme.Light,位于/base/core/res/res/values/themes.xml -->
<style name="Theme" parent="android:Theme.Light">
<item name="android:windowFullscreen">true</item>
<item name="android:windowTitleSize">60dip</item>
<item name="android:windowTitleStyle">@style/WindowTitle</item>
</style>

<style name="WindowTitle" parent="android:WindowTitle">
<item name="android:singleLine">true</item>
<item name="android:shadowColor">#BB000000</item>
<item name="android:shadowRadius">2.75</item>
</style>
</resources>

要为Activity使用theme,要么使用代码 setTheme(R.style.Theme),要么在Application Manifest里面设置 。

本文程序的styles.xml代码如下,background默认使用的是9.png,xml定义在/base/core/res/res/drawable/之下:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="TextView">
<item name="android:textSize">18sp</item>
<item name="android:textColor">#008</item>
<item name="android:shadowColor">@android:color/black</item>
<item name="android:shadowRadius">2.0</item>
</style>

<style name="EditText">
<item name="android:shadowColor">@android:color/black</item>
<item name="android:shadowRadius">1.0</item>
<item name="android:background">@android:drawable/btn_default</item>
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
</style>

<style name="Button">
<item name="android:background">@android:drawable/edit_text</item>
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
</style>
</resources>

main.xml代码如下:

view plain copy to clipboard print ?
  1. <? xml version = "1.0" encoding = "utf-8" ?>
  2. < LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
  3. android:orientation = "vertical" android:layout_width = "fill_parent"
  4. android:layout_height = "fill_parent" >
  5. < TextView android:layout_width = "fill_parent"
  6. android:layout_height = "wrap_content" android:text = "@string/hello"
  7. style = "@style/TextView" />
  8. < EditText android:id = "@+id/EditText01" android:layout_height = "wrap_content"
  9. style = "@style/EditText" android:layout_width = "fill_parent"
  10. android:text = "类似Button的EditText" > </ EditText >
  11. < EditText android:id = "@+id/EditText02" android:layout_height = "wrap_content"
  12. android:layout_width = "fill_parent" android:text = "普通的EditText" > </ EditText >
  13. < Button android:id = "@+id/Button01" android:layout_height = "wrap_content"
  14. style = "@style/Button" android:layout_width = "fill_parent" android:text = "类似EditText的Button" > </ Button >
  15. </ LinearLayout >

更多相关文章

  1. Android(安卓)ImageView 的scaleType 属性图解
  2. 解决Android的ListView控件滚动时背景变黑(转)
  3. Androidの自定义进度条ProgressBar实现
  4. Android(安卓)UI框架 Android(安卓)UI控件类简介 android5大布局
  5. Android(安卓)利用addView 动态给Activity添加View组件
  6. Android之自制的分页表格控件
  7. Android控件之利用selector自定义的带文字的图片按钮
  8. Android(安卓)Scroller的简单使用
  9. 将服务器端字符读取至android的文本控件,换行符变成了黑方块的原

随机推荐

  1. Android(安卓)应用程序快速启动的秘诀
  2. Unity3D研究院之与Android相互传递消息(十
  3. Android(安卓)ROM研究---制作Nexus S上的
  4. 面向 x86 的 Android* 入门指南
  5. android播放swf文件
  6. 安卓(android)开发应该怎么学?需要哪些基础
  7. Android应用程序基础知识
  8. Android高手进阶教程(二十五)之---Androi
  9. 【讲座】It's Android(安卓)Time:程序员创
  10. 【I/O 2014】总结:互通互联的 Android(安