自己看的,随便写,贴。关于Android里面的Style(样式)和主题(Theme)资源

本文详细介绍了Android开发中样式(Style)与主题(Theme)的概念及其应用方法。样式用于控件级别,改变单个控件的外观;而主题应用于整个Activity或应用程序,统一窗口风格。文章还展示了如何在XML文件中定义样式和主题,并在AndroidManifest.xml中应用它们。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



关于Android里面的Style(样式)和主题(Theme)资源
    Theme是针对窗体级别的,改变窗体样式;
    Style是针对窗体元素级别的,改变指定控件或者Layout的样式。
    1、样式资源(Style)
        android的样式包含一组格式,为一个组件设置使用某个样式时,该样式所包含的全部格式都会应用于该组件。
        Android 的样式资源放在/res/values目录下。样式的根目录是<resources.../>元素,
        <resources.../>里面可以存放多个<style.../>子元素,每个style定义的是一个样式。
        <style.../>里面可以包含多个<item.../>子元素,每个item定义的是一个格式项
        <resources>
            <style name = "style1">
                <item name = "android:textSize">20sp</item>
                <item name = "android:textColor">#00d</item>
            </style>
            <style name = "style1" parent = "@style/style1">
                <item name = "android:textSize">20sp</item>
                <item name = "android:textColor">#000</item>
            </style>
        </resources>
        这里面style元素有两个属性name(名字)和parent(该样式所继承的父样式)
        
        定义了这两个样式后就可以在xml资源里面使用样式了,格式为 style = @style/style1
        
        
        
    2、主题资源(Theme)
    你通过在Android Manifest中定义的<application>和<activity>元素将主题添加到整个程序或者某个 Activity,但是主题是不能应用在某一个单独的View里。
    主题依然在<style>元素里边申明,也是以同样的方式引用。
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
     <style name="CustomTheme">
     <item name="android:windowNoTitle">true</item>
     <item name="windowFrame">@drawable/screen_frame</item>
     <item name="windowBackground">@drawable/screen_background_white</item>
     <item name="panelForegroundColor">#FF000000</item>
     <item name="panelBackgroundColor">#FFFFFFFF</item>
     <item name="panelTextColor">?panelForegroundColor</item>
     <item name="panelTextSize">14</item>
     <item name="menuItemTextColor">?panelTextColor</item>
     <item name="menuItemTextSize">?panelTextSize</item>
     </style>
    </resources>
    注意我们用了@符号和?符号来应用资源。@符号表明了我们应用的资源是前边定义过的(或者在前一个项目中或者在Android 框架中)。问号?表明了我们引用的资源的值在当前的主题当中定义过。通过引用在<item>里边定义的名字可以做到(panelTextColor 用的颜色和panelForegroundColor中定义的一样)。这中技巧只能用在XML资源当中。
        
        让应用中全部窗口使用一个主题:打开AndroidManifest.xml 文件,编辑<application>标签,让其包含android:theme属性,值是一个主题的名字
        <application android:theme="@style/CustomTheme">
        
        想让你程序当中的某个Activity拥有这个主题,那么你可以修改<activity>标签。
        <activity android:theme="@android:style/Theme.Dialog">
    
        有内置主题:如Theme.Dialog <activity android:theme="@android:style/Theme.Dialog">
        
        轻微的改变,你只需要将这个主题添加为父主题。比如我们修改Theme.Dialog主题。我们来继承Theme.Dialog来生成一个新的主题。

        <style name="CustomDialogTheme" parent="@android:style/Theme.Dialog">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值