14 样式与主题

颜色资源

在colors.xml中定义一些颜色:

<resources>
    <color name="colorPrimary">#008577</color>
    <color name="colorPrimaryDark">#00574B</color>
    <color name="colorAccent">#D81B60</color>

    <color name="light_green">#A5C482</color>
    <color name="dark_red">#C3352B</color>
    <color name="gray">#607D8B</color>
    <color name="soothing_blue">#6DBFE4</color>
    <color name="dark_blue">#005A8A</color>
    <color name="soothing_green">#4CAF50</color>
</resources>

样式

添加样式

styles.xml

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        ...
    </style>

    <style name="BeatBoxButton">
        <item name="android:background">@color/soothing_blue</item>
    </style>
</resources>

使用样式

list_item_sound.xml

<Button
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    style="@style/BeatBoxButton"
    ...>
</Button>

样式继承

方式1:通过命名表示样式继承关系

<style name="BeatBoxButton.Strong">
    <item name="android:textStyle">bold</item>
</style>

方式2:指定父样式表示样式继承关系

<style name="StrongBeatBoxButton" parent="@style/BeatBoxButton">
    <item name="android:textStyle">bold</item>
</style>

注意:要以主题名的形式指定父主题,有继承关系的两个主题都应处于同一个包中。一旦AppCompat库要跨库继承,就一定要明确使用 parent 属性。


主题

BeatBox项目自带默认主题。找到并打开AndroidManifest.xml文件,可以看到application标签下的 theme 属性。

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.beatbox">
    <application
        ...
        android:theme="@style/AppTheme">
        <activity android:name=".BeatBoxActivity">
            ...
        </activity>
    </application>
</manifest>

在styles.xml中可以看到AppTheme的定义,它现在继承 Theme.AppCompat.Light.DarkActionBar 的全部属性。如有需要,可以添加自己的属性值,或是覆盖父主题的某些属性值。

AppCompat库自带三大主题:

  • Theme.AppCompat —— 深色主题
  • Theme.AppCompat.Light —— 浅色主题
  • Theme.AppCompat.Light.DarkActionBar —— 带深色工具栏的浅色主题

添加主题颜色

为AppTheme改用深色主题,并添加三个自定义属性:

styles.xml

<resources>
    <style name="AppTheme" parent="Theme.AppCompat">
        <item name="colorPrimary">@color/soothing_green</item>
        <item name="colorPrimaryDark">@color/colorAccent</item>
        <item name="colorAccent">@color/gray</item>
    </style>
    ...
</resources>

其中,

  • colorPrimary 属性主要用来设置工具栏背景色;
  • colorPrimaryDark 用于屏幕顶部的状态栏;
  • 将 colorAccent 设置为灰色的。这个主题色应该和 colorPrimary 形成反差效果,主要用于给 EditText 这样的组件着色。按钮组件不支持着色,所以 colorAccent 主题色在BeatBox项目中没有效果。

覆盖主题属性

覆盖colorBackground属性,以设置窗口背景颜色:

styles.xml

<resources>
    <style name="AppTheme" parent="Theme.AppCompat">
        ...
        <item name="android:colorBackground">@color/light_green</item>
    </style>
</resources>

修改按钮属性

创建按钮样式

styles.xml

...
	<style name="BeatBoxButton" parent="android:Widget.Holo.Button">
        <item name="android:background">@color/soothing_blue</item>
    </style>
...
使用BeatBoxButton样式

styles.xml

<resources>
    <style name="AppTheme" parent="Theme.AppCompat">
        <item name="colorPrimary">@color/soothing_green</item>
        <item name="colorPrimaryDark">@color/colorAccent</item>
        <item name="colorAccent">@color/gray</item>

        <item name="android:colorBackground">@color/light_green</item>
        <item name="android:buttonStyle">@style/BeatBoxButton</item>
    </style>

    <style name="BeatBoxButton" parent="android:Widget.Holo.Button">
        <item name="android:background">@color/soothing_blue</item>
    </style>
</resources>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第 1 章 主题与皮肤开发 ........................................................................................................................................... 3 1.1 入门:Portal 的主题与皮肤开发: .................................................................................................. 3 1.1.1 Default.jsp.................................................................................................................................. 4 1.1.2 Head.jsp ..................................................................................................................................... 4 1.1.3 AdminLinkBarInclude.jsp ........................................................................................................... 4 1.1.4 ToolBarInclude.jsp ..................................................................................................................... 4 1.1.5 PlaceBarInclude.jsp .................................................................................................................... 4 1.1.6 PageBarInclude.jsp .................................................................................................................... 5 1.1.7 Portal6.0 中的调用关系 ............................................................................................................ 5 1.2 初级:如何更换 Portal 系统的 logo 图标 ........................................................................................ 6 1.2.1 Default.jsp 的工作原理 ............................................................................................................. 6 1.2.2 换一个 logo ............................................................................................................................... 7 1.2.3 用 flash作 logo: ..................................................................................................................... 7 1.3 中级进阶:开发个性化的 Portal 主题 ............................................................................................. 9 1.3.1 理解各级菜单; ....................................................................................................................... 9 1.3.2 个性化工具栏 ......................................................................................................................... 10 1.3.3 个性化的管理标签 ................................................................................................................. 11 1.4 高级探索:开发自适应分辨率的主题与皮肤 ............................................................................... 11 1.4.1 1024*768 分辨率下的主题 .................................................................................................... 11 1.4.2 800*600 分辨率下的主题 ...................................................................................................... 11 1.4.3 1024 和 800 下自适应得主题 ................................................................................................ 12 1.5 高手过招:更改 Portal 系统的登录方式 ....................................................................................... 12 1.5.1 从首页上登录 ......................................................................................................................... 12 1.5.2 拒绝从系统自带的登录界面 ................................................................................................. 13 1.5.3 遗留问题 ................................................................................................................................. 13 1.6 Portlet 的皮肤开发 .......................................................................................................................... 14 1.6.1 更换标题背景图片 ................................................................................................................. 14 1.6.2 隐藏工具图标 ......................................................................................................................... 15 1.6.3 个性化左侧菜单 ..................................................................................................................... 15 1.7 合理使用 CSS 样式表 ....................................................................................................................... 16 1.8 主题与皮肤的安装 .......................................................................................................................... 17 1.8.1 安装皮肤 ................................................................................................................................. 17 1.8.2 安装新主题 ............................................................................................................................. 19 1.9 主题与皮肤开发的调试方式 ........................................................................................................... 21 1.9.1 自动装载法 ............................................................................................................................. 21 1.9.2 复制目录法 ............................................................................................................................. 21

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值