`
oyeal
  • 浏览: 82236 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

Android的风格与主题

阅读更多
Android风格(styles)和主题(themes)文件,是影响到整个应用界面美观的因素之一。Styles和Themes都是资源,存放在res/values文件夹下。
Style:是一个包含一种或者多种格式属性的集合,你可以将其应用在布局文件中的单一组件中。比如,我们可以为一个TextView组件自定义一种风格,在这个风格中定义文本的字体大小和颜色等等;也可以使用系统自带的风格。
Theme:是一个包含一种或者多种格式化属性的集合,你可以将其应用在一个或者多个Activity中。比如,我们可以自定义一个Theme,指定窗口框架颜色和面板的前景色和背景色,并为菜单定义可文字的大小和颜色属性,这样就可以将这个Theme应用在我们程序中所有的Activity里。
风格
(1) 自定义style时,在res/value目录下新建一个xml文件(文件名可以随便取),最好取别人一看就知道是做什么的;
(2) 添加<resources></resources>标签;
(3) 在<resources></resources>标签里面添加<style>元素,注意它的名字属性是唯一的;
(4) 在<style>里面定义你想要的风格属性,这些属性可以在类R.attr下找到,每一种属性都需要放在<item>标签下,每一种属性对应一个<item>标签,在标签内部定义该属性的值。
举个例子(styles.xml):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="info_label">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:textAppearance">@style/TextAppearance.info_label</item>
        <item name="android:paddingRight">4dip</item>
</style>
<style name="TextAppearance.info_label">
     <item name="android:textSize">14sp</item>
     <item name="android:textStyle">bold</item>
</style>
<style
name="mytextstyle" parent="android:TextAppearance.Large">
<item name="android:textColor">#FFFFFF00</item>
<item name="android:textStyle">bold</item>
</style>
</resources>
上面的样式可以在单个组件TextView中应用如下:
<TextView style="@style/info_label"
      android:text="@string/oldPinLabel"/>
注意:我们用@符号和?符号来引用资源。地址符@表明我们引用的资源是其它地方定义过的(也许在这个项目中或者在Android框架中)。问号符?表明我们引用的资源的值在当前加载的主题中。这通过以名字引用特定的来完成(比如,panelTextColor使用了分配给panelForegroundColor的相同颜色)。这种技巧只能用在XML资源当中。
主题
主题在定义和引用方式上和风格的定义和引用是一样的,唯一不同的是它们被引用的地方不同。在使用上,主题可以在AndroidManifest.xml文件中的<application>和<activity>标签下使用,还可以通过代码在程序中使用。
在styles.xml文件中定义主题如下:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="myTheme" >
<item name="android:windowBackground">@drawable/transparent_backgroud</item>
<item name="android:windowNoTitle">true</item>
<item name=”android:textSize”>14sp</item>
<item name="android:windowFullscreen">true</item>
</style>
</resources>
上面代码中定义主题myTheme ,设置窗口背景为透明,无标题全屏,在AndroidManifest.xml中,应用于某个Activity时可以进行如下设置:
<activity android:theme="@style/myTheme">
若是应用到整个应用中的所有Activity的话,就要进行如下设置:
<application android:theme="@style/myTheme ">
也可以在程序中使用setTheme()方法来设定主题,但是要注意setTheme()一定要在setContentView()之前调用。否则设定的主题无法表现出来,可以这样使用:
setTheme(R.style.myTheme);
setContentView(R.layout.main);
之所以这样做,是因为主题是不能动态改变的,系统在绘制程序界面的开始就应该先获得主题的信息,才能绘制,而一旦绘制了,就不能再做改变。
分享到:
评论

相关推荐

    android studio的主题风格

    android studio的 主题style,背景黑色,各种关键字和方法名,变量等颜色都有区分。使用方法,android studio -- File--Import setting... 选中该setting.jar--ok 重启studio

    Android studio主题包

    本文将深入探讨与"Android Studio主题包"相关的知识点,旨在帮助开发者打造个性化且高效的编程环境。 Android Studio的主题不仅关乎美观,更关乎开发效率。一个合适的主题可以使代码更加清晰易读,减轻视觉疲劳,...

    Android Studio自定义主题--基于sublime3风格

    现在,你的Android Studio将以新的Sublime3风格主题运行。 除了颜色主题,`sublime3_custom.png`可能是一个截图,展示了主题在实际使用中的效果,或者是主题作者提供的示例图片,帮助用户更好地理解主题的视觉风格...

    Android studio eclipse风格主题

    Android studio eclipse风格配色,背景已经改为护眼色,习惯eclipse的同学可以下载使用

    android主题设置与主题切换

    本篇文章将深入探讨Android中的主题设置和主题切换,以实现背景、对话框和按钮风格的一键切换。 1. **Android主题的基本概念** - 主题是Android系统中定义UI样式的一种方式,它包含了多个样式属性,如背景颜色、...

    Android场景桌面主题

    1. **图标设计**:图标是主题的核心元素,应保持清晰易辨,与主题风格一致。2D场景UI图片规范会提供具体的尺寸和格式要求。 2. **壁纸选择**:壁纸应符合场景的主题,可以是静态或动态的,但要确保不影响应用性能。 ...

    Android studio /idea主题

    androidstudio主题 intellij idea也可以用,自己设置的主题,导出。。使用的时候直接 import setting 就可以了。

    android studio (as)主题theme

    本主题相关的压缩包文件包括"ladies night2.jar", "cobalt.jar", "visual studio.jar", 和 "monokai sublime text3.jar",这些都是针对Android Studio定制的不同视觉风格的主题文件。 1. **主题概念**:在Android ...

    android 自定义各种风格button

    本文将深入探讨如何在Android中自定义各种风格的Button。 首先,我们可以通过修改Button的背景来改变其颜色。Android提供了多种方式来实现这一目标,例如使用颜色资源、颜色选择器(ColorStateList)或者渐变色。在...

    android 代码主题背景

    android 代码主题背景。里面有android studio代码主题背景,也有eclipse代码主题背景。也有设置方法,以及相关主题背景下载的网址。博客介绍:http://blog.csdn.net/qq_16064871/article/details/54645475。

    Android 主题之主题文件夹

    10. **主题与夜间模式** Android提供`dayNight`切换,允许应用在白天和夜晚自动切换主题。只需在`styles.xml`中设置`&lt;item name="android:windowLightStatusBar"&gt;true&lt;/item&gt;`等属性,就可以实现深色状态栏等夜间...

    android 学习心得

    ### 六、Android风格与主题 - **样式**:用于定义界面元素的外观,如字体大小、颜色等。 - **主题**:定义了一组样式集合,可以应用于整个应用或某个Activity,用于统一应用的视觉风格。 - **自定义主题**:可以...

    Androidstudio theme 主题

    总之,Android Studio的主题系统为开发者提供了极大的灵活性,不仅有内置的多种主题供选择,还可以方便地导入和使用第三方主题,为Android应用带来独特的视觉风格。正确理解和运用主题,能有效提高应用的用户体验和...

    MIUI主题风格_一种Android系统换肤功能的设计 思路(董红光)

    MIUI主题风格的设计思路体现了小米公司在用户体验方面的创新与追求。通过采用资源文件路径重定向的方式,不仅实现了主题的实时切换,还大大增强了主题的通用性和灵活性。这种设计方法对于提升Android系统的个性化...

    android 仿 windows metro 风格 源码

    综上所述,"android 仿 windows metro 风格 源码"项目提供了实现这一独特界面风格的全套解决方案,开发者可以在此基础上进行定制和扩展,以创建出与Windows Metro风格一致的Android应用。通过研究和理解源码,开发者...

    Android 主题动态切换

    在Android开发中,主题(Theme)是为应用提供全局样式和视觉效果的关键元素。通过主题,开发者可以统一应用的外观和交互,使用户界面保持一致性和专业性。本主题涉及的知识点主要集中在如何实现应用主题的动态切换,...

    Android-Android主题换肤插件化换肤无缝切换

    1. **Android主题换肤**:Android系统允许开发者通过定义不同风格的资源文件来实现主题换肤。这包括颜色、图片、布局等元素的更改。开发者通常会创建一套默认的主题,并提供额外的皮肤资源包供用户选择。通过改变...

    android theme 皮肤主题 的应用

    5. **主题与皮肤** 皮肤通常是对主题的进一步扩展,允许用户更改应用的某些特定视觉元素,如背景图片、按钮形状等。在Android中,可以通过更换资源文件或使用插件化技术实现皮肤更换。例如,`CSipSimple`项目中的`...

    ADW Android launcher 很漂亮的玻璃风格主题

    这款"ADW Android launcher 很漂亮的玻璃风格主题"正是针对ADW Launcher设计的一款主题,旨在为用户带来独特的视觉享受。 **主题简介** 该玻璃风格主题将手机桌面赋予了透明和流动的效果,仿佛透过玻璃看世界,给...

    android风格化统一Demo

    "android风格化统一Demo"提供了一个简洁的示例,通过几行代码就能实现UI的规范化和一致性。这篇详解将深入讨论Android风格化统一的关键概念、方法以及如何在实践中运用。 1. **主题和样式(Themes & Styles)**: ...

Global site tag (gtag.js) - Google Analytics