`
xindrace
  • 浏览: 95696 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android入门第十六篇之Style与Theme

 
阅读更多

本文来自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:

<!-- 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代码如下:

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical" android:layout_width="fill_parent"  
    android:layout_height="fill_parent">  
    <TextView android:layout_width="fill_parent"  
        android:layout_height="wrap_content" android:text="@string/hello"  
        style="@style/TextView" />  
    <EditText android:id="@+id/EditText01" android:layout_height="wrap_content"  
        style="@style/EditText" android:layout_width="fill_parent"  
        android:text="类似Button的EditText"></EditText>  
    <EditText android:id="@+id/EditText02" android:layout_height="wrap_content"  
        android:layout_width="fill_parent" android:text="普通的EditText"></EditText>  
    <Button android:id="@+id/Button01" android:layout_height="wrap_content"  
        style="@style/Button" android:layout_width="fill_parent" android:text="类似EditText的Button"></Button>  
</LinearLayout>  

 

 

分享到:
评论

相关推荐

    android_UI进阶之style和theme的使用

    Android_UI进阶之style和theme的使用 Android 中的样式(style)和主题(theme)是两种资源,都是 Android 提供的默认资源,可以供开发者使用。同时,开发者也可以自己定义style和theme,以满足不同的需求。 style...

    Android Style\\Theme动态切换

    这篇博客“Android Style\\Theme动态切换”可能探讨了如何在Android应用程序中实现实时改变主题和样式的技巧。 首先,我们需要理解Android中的Theme和Style的基本概念。Theme是全局的,通常应用于整个应用程序或...

    Android UI中的style和theme以及AlertDialog

    在Android UI设计中,style和theme是两个至关重要的概念,它们极大地增强了应用界面的统一性和可维护性。这篇博文将深入探讨这两个主题,并通过具体的示例来解释它们的工作原理。 首先,我们来看`style`(样式)。...

    android style and theme

    ### Android中的Style与Theme详解 #### 一、引言 在Android开发中,为了提高UI设计的效率并保持界面的一致性,开发者通常会利用**Style**和**Theme**两个概念来实现统一的设计规范。本文将详细介绍这两个概念,并...

    Android入门之Style与Theme用法实例解析

    在Android开发中,Style和Theme是提升应用界面一致性、美观度和用户体验的重要工具。Style主要用于定义单个UI组件(如TextView、Button等)的样式,包括颜色、字体、大小等属性,而Theme则是应用于整个Activity或...

    Style和Theme

    Style和Theme在Android中的应用 在Android开发中,Style和Theme是两个非常重要的概念,它们被广泛应用于UI设计中。下面,我们将详细讲述Style和Theme的区别和使用方法,并提供实践中的示例代码。 Style Style是...

    Android设置theme中可能遇到的坑

    发现坑 最近在配置项目主题的时候报了如下错误: This Activity already has an...style name=AppTheme.NoActionBar&gt; &lt;item name=android:windowActionBar&gt;false &lt;item name=android:windowNoTitle&gt;true &lt;ite

    Android设置Activity背景为透明style的简单方法(必看)

    @android:style/Theme.Translucent @android:style/Theme.Translucent.NoTitleBar @android:style/Theme.Translucent.NoTitleBar.Fullscreen 只需要在Manifest中需要透明的Activity内设置theme为以上任意一个就可以...

    Android应用源码之theme.zip

    本资源"Android应用源码之theme.zip"提供了一个关于Android主题设计的源码示例,旨在帮助开发者深入理解并自定义Android应用的主题。 Android的主题系统基于XML文件,通常位于res/values目录下,主要由styles.xml和...

    android安卓app已经放弃使用Theme.Dialog,改用Theme.Holo.DialogWhenLarge

    本篇文章将详细探讨这两种主题的区别,以及为何Android应用可能选择从"Theme.Dialog"转向"Theme.Holo.DialogWhenLarge"。 首先,让我们了解"Theme.Dialog"。它是一种常见的主题,用于创建看起来像是浮现在当前...

    Activity_Theme_Style.rar_activity theme_android

    在"Activity_Theme_Style.rar_activity theme_android"这个压缩包中,包含的资源可能是一个关于如何自定义和应用Android Activity主题的教程。 首先,我们来了解一下Android中的主题系统。Android提供了预定义的...

    android 主题(Theme)实现

    在Android开发中,主题(Theme)是应用全局样式和外观的重要组成部分。它们允许开发者通过一套统一的视觉风格来定制应用程序的界面元素,如颜色、字体、控件样式等,而无需在每个单独的Activity或布局文件中进行重复...

    android change style

    本篇文章将深入探讨如何在Android应用中动态地改变Style,以及Theme与Style的区别。 首先,让我们了解什么是Theme和Style。在Android中,Theme是一种全局样式,它应用于整个应用程序或特定的Activity。通过设置`...

    Androidstudio theme 主题

    本文将深入探讨Android Studio中的主题(Theme)概念以及如何利用第三方主题提升开发体验。 Android Studio的主题主要指的是应用程序的视觉样式,包括颜色、字体、布局等方面。主题可以在全局范围内统一应用,使得...

    Android改Theme实现夜间模式

    本篇文章将详细介绍如何通过修改Android应用的Theme来实现夜间模式。 首先,理解Android中的Theme(主题)是至关重要的。Theme是Android应用的全局样式,它定义了应用的整体外观和感觉,包括颜色、字体、布局等元素...

    Android应用源码之style.zip

    "Android应用源码之style.zip"提供的源码资源显然与Android应用中的自定义风格设置有关。下面我们将深入探讨Android应用中风格的使用及其重要性。 1. **什么是Android风格(Style)**: - 风格是XML文件中定义的一...

    Android Style实例总结

    本篇内容将聚焦于Android按钮(Button)的不同风格样式(Style)的实例应用。 首先,我们需要理解Android Style的基础。在Android中,样式通常定义在`res/values/styles.xml`文件中,它们是XML资源,由一个或多个...

    Android代码-theme简单使用示例.zip

    android:theme="@style/AppTheme" &gt; &lt;!-- ... --&gt; ``` 或对于特定Activity: ```xml android:name=".MainActivity" android:theme="@style/CustomThemeForMainActivity" &gt; &lt;!-- ... --&gt; ``` `@style/App...

    Android_样式(style)&主题(theme)&显示单位

    在Android开发中,样式(style)和主题(theme)是两个关键的概念,它们用来统一和管理应用程序的视觉表现。样式可以看作是一组预定义的属性集合,用于控制UI组件的外观,比如字体颜色、大小、背景等。而主题则是...

Global site tag (gtag.js) - Google Analytics