`

android中的Style与Theme

阅读更多
Android默认情况下提供了一些实用的主题样式,比如说Theme.Dialog可以让你的Activity变成一个窗口风格,而Theme.Light则让你的整个Activity具有白色的背景,而不是黑色那么沉闷。具体使用方法很简单在Androidmanifest.xml文件中对你的Activity节点上加入些代码,如图所示:




http://blog.csdn.net/hellogv/archive/2011/01/11/6128594.aspx
越来越多互联网企业都在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>  

其他参考:
http://www.ideasandroid.com/archives/322

Android应用开发中的风格和主题(style,themes)
http://yinter.iteye.com/blog/574818

一些小效果(持续更新……)
http://heji.iteye.com/blog/794149
  • 大小: 23 KB
  • 大小: 22.2 KB
  • 大小: 76.8 KB
分享到:
评论

相关推荐

    Android UI中的style和theme以及AlertDialog

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

    Android Style\\Theme动态切换

    在Android开发中,主题(Theme)和样式(Style)是构建用户界面的重要组成部分。它们允许开发者定义应用程序的整体外观和感觉,包括颜色、字体、布局等元素。动态切换Theme和Style可以提升用户体验,使得用户可以根据...

    android_UI进阶之style和theme的使用

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

    android style and theme

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

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

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

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

    在Android应用开发中,主题(Theme)是控制应用程序全局外观和行为的重要元素。"Theme.Dialog"和"Theme.Holo.DialogWhenLarge"都是Android系统提供的两种不同的对话框主题。本篇文章将详细探讨这两种主题的区别,...

    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

    Style和Theme

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

    Android应用源码之theme.zip

    在Android开发中,主题(Theme)是至关重要的一个部分,它定义了应用程序的视觉样式、颜色、字体等界面元素。本资源"Android应用源码之theme.zip"提供了一个关于Android主题设计的源码示例,旨在帮助开发者深入理解...

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

    在Android开发中,主题(Theme)是一个至关重要的概念,它为整个应用程序或应用程序中的特定组件提供了统一的视觉样式。主题可以定义颜色、字体、图标以及其他界面元素的外观,从而实现一致性和品牌识别度。本示例将...

    android change style

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

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

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

    android 主题(Theme)实现

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

    Android Theme和Styles内部定义解析.txt

    #### 二、Theme与Styles的基础概念 1. **Theme**:主题是用于定义应用或某个Activity的整体外观的集合。它可以控制应用的颜色、字体大小、窗口背景等全局样式。 2. **Styles**:样式是用于定义单个UI组件(如按钮、...

    Activity_Theme_Style.rar_activity theme_android

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

    Androidstudio theme 主题

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

    Android系统自带样式 (android:theme)

    android:theme=”@android:style/Theme.Dialog” : Activity显示为对话框模式 android:theme=”@android:style/Theme.NoTitleBar” : 不显示应用程序标题栏 android:theme=”@android:style/Theme.NoTitleBar....

    android网络视频播放器(完整可运行).zip

    视频&lt;activity android:name="com.android.ui.TypeActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar" android:launchMode="singleTask"/&gt; &lt;activity android:name=...

    Android改Theme实现夜间模式

    首先,理解Android中的Theme(主题)是至关重要的。Theme是Android应用的全局样式,它定义了应用的整体外观和感觉,包括颜色、字体、布局等元素。我们可以创建自定义Theme,并在运行时动态切换,从而实现夜间模式...

Global site tag (gtag.js) - Google Analytics