`

Android中使用styles

阅读更多

在项目开发中经常遇到这样的问题,在很多的Activity中都会有标题栏,而这个标题栏通常拥有类似的效果,比如下面的截图所示。那么你需要统一控制标题栏中的文字的大小,字体的颜色等等。方便修改和维护。

 

 

1.在res/values/styles.xml 中为每个控件编写style:

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.

    -->
    <style name="AppBaseTheme" parent="android:Theme.Light">
        <!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.

        -->
    </style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>

    <!-- 页面头部  返回按钮样式 -->
    <style name="header_button_back" parent="@android:style/TextAppearance.Widget.Button">
        <item name="android:textSize">@dimen/header_text_size</item>
        <item name="android:textColor">@color/header_button_text_color</item>
        <item name="android:layout_height">@dimen/header_button_height</item>
        <item name="android:layout_width">@dimen/header_button_back_width</item>
        <item name="android:background">@drawable/btn_back_selector</item>
        <item name="android:text">返回</item>
        <item name="android:layout_marginLeft">8dip</item>
        <item name="android:paddingLeft">8dp</item>
       <item name="android:layout_gravity">center</item> 
    </style>
    
    
    <!-- 页面头部  标题样式 -->
    <style name="header_text_view" parent="@android:style/TextAppearance.Widget.TextView">
        <item name="android:textSize">@dimen/header_title_text_size</item>
        <item name="android:textColor">@color/header_button_text_color</item>
        <item name="android:layout_height">@dimen/header_button_height</item>
        <item name="android:layout_width">0dp</item>
        <item name="android:layout_weight">1</item>
        <item name="android:gravity">center</item> 
        <item name="android:text">标题</item>
    </style> 
    
    
     <!-- 页面头部  操作按钮样式 -->
    <style name="header_button_operate" parent="@android:style/TextAppearance.Widget.Button">
       <item name="android:textSize">@dimen/header_text_size</item>
        <item name="android:textColor">@color/header_button_text_color</item>
        <item name="android:layout_height">@dimen/header_button_height</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_marginRight">5dp</item>
        <item name="android:layout_marginLeft">9dip</item>
        <item name="android:text">操作</item> 
        <item name="android:layout_gravity">center</item> 
    </style>
    
    
      <!-- 页面头部 容器样式 -->
    <style name="header_linear_layout"> 
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">@dimen/header_height</item>
        <item name="android:background">@drawable/bg_navbar_no_line</item> 
        <item name="android:gravity">center</item> 
         
    </style> 

</resources>
 

2.在activity的布局文件中利用这些style:

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <!-- HeadBar
    	 这样的话,你可以很容易地定义一个titlebar的样式,方便使用和统一修改。
    	 如果需要自定义可以在下面设置自己的属性,能够覆盖style中的属性,比如你可以设置layout_margin等等,能够覆盖style中的layout_margin
     -->

    <LinearLayout
        style="@style/header_linear_layout"
        android:layout_alignParentTop="true" >

        <Button
            android:id="@+id/btn_back"
            style="@style/header_button_back"
             />

        <TextView
            style="@style/header_text_view"
            android:text="我的个人中心" />

        <Button
            android:id="@+id/btn_operate"
            style="@style/header_button_operate"
            android:visibility="invisible" />
    </LinearLayout>

</RelativeLayout>

 

 

在你需要Titlebar的Activity的布局文件中使用上面的布局,就可以达到很方便控制所有控件属性的目的了。当然这也不妨碍你自定义某个控件的属性,因为你自定义的属性能够覆盖style中的属性。

 

 

上面style文件中用到的dimen这里也贴出来:res/values/dimens.xml

 

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <dimen name="header_height">50dip</dimen>
    <dimen name="header_button_height">50dip</dimen>
    <dimen name="header_text_size">16sp</dimen>
    <dimen name="header_title_text_size">22sp</dimen>
    <dimen name="header_button_back_width">60dp</dimen>
    <dimen name="header_tab_width">80dp</dimen>
    <dimen name="header_tab_group_width">162dp</dimen>

</resources>
 

同样的color:res/values/colors.xml :

 

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <color name="act_main_item_text_color">#505355</color>
    <color name="header_button_text_color">#e5e9ec</color>
    
</resources>
 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 49.7 KB
1
1
分享到:
评论
2 楼 xy_feng_zhi_chao 2015-12-26  
多谢楼主分享
1 楼 wangchangbing 2014-02-26  
缺少2个资源 能否帮忙提供下 谢谢了!

相关推荐

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

    在Android开发中,为了实现界面的一致性和美观性,开发者通常会使用`Theme`和`Styles`来管理UI元素的样式和外观。本文将深入探讨Android中`Theme`和`Styles`的内部定义及其工作原理。 #### 二、Theme与Styles的基础...

    Android 中使用IconFont 例子

    在Android项目中使用IconFont,首先需要获取一个图标字体库,如阿里巴巴的IconFont图标库(http://www.iconfont.cn/)。下载或克隆你需要的图标库,通常会得到一个`.ttf`或`.otf`的字体文件。将这个文件复制到项目...

    android ActionBar使用示例

    在本示例中,我们将深入探讨如何在Android应用程序中使用和自定义ActionBar。 1. **ActionBar基本功能** - **显示应用图标和标题**:默认情况下,ActionBar会显示应用的图标和标题,为用户提供清晰的应用标识。 -...

    Android中Action Bar的使用

    本篇文章将深入探讨如何在Android中有效地使用Action Bar,包括其基本概念、设置方法以及自定义选项。 首先,Action Bar在Android 3.0(API级别11)被引入,旨在提高用户体验和应用一致性。在早期版本的Android中,...

    Android 使用Font和style定义App全局字体样式

    本文将详细讲解如何在Android中使用`Font`和`style`来定义App全局字体样式。 首先,让我们了解`Font`的概念。在Android中,`Font`通常指的是字体文件,通常以`.ttf`(TrueType Font)或`.otf`(OpenType Font)格式...

    Android使用Activity用作弹出式对话框

    总结起来,Android中使用`Activity`作为弹出式对话框主要涉及以下几个步骤: 1. 创建一个具有对话框样式的`Activity`。 2. 设计对话框的界面布局。 3. 设置窗口属性以达到对话框效果,如背景淡化和动画。 4. 使用...

    android progressbar使用系列集合

    这个文件可能包含了一个自定义的ProgressBar类,通过扩展`ProgressBar`并覆盖其`onDraw()`方法来实现自定义的绘制逻辑,或者它可能包含了一个布局文件,展示了如何在XML中使用上述方法自定义ProgressBar。...

    AndroidThings中文乱码解决Demo

    Android系统通常使用UTF-8编码来处理字符串,而有些设备或API可能使用GBK或其他编码,这可能导致乱码。在必要时,需要对输入和输出数据进行正确的编码转换。 总的来说,解决Android Things中的中文乱码问题需要理解...

    android项目中读取ini配置文件

    在Android应用开发中,有时我们需要将一些系统配置信息存储在外部文件中,以方便管理和更新。在这种情况下,`ini`文件格式是一个常见的选择,因为它的结构简单,易于读写。本文将详细介绍如何在Android项目中读取...

    android评分组件的使用

    可以通过修改`res/values/styles.xml`中的AppTheme来调整RatingBar的颜色和大小。 2. 创建自定义样式 创建一个XML资源文件(如`res/drawable/rating_bar.xml`),定义星星的样式: ```xml &lt;layer-list xmlns:...

    android 代码高亮 syntaxHighlighter

    5. **性能优化**:在Android应用中使用WebView加载大量代码可能会导致性能问题,因此可以考虑预处理代码,提前生成高亮后的HTML,减少WebView的实时处理负担。 6. **兼容性问题**:不同的Android版本对WebView的...

    Android控件点击变色

    1. **默认选中状态颜色**:在Android的`res/values/styles.xml`文件中,你可以定义一个主题,包含按钮的正常状态和按下状态的颜色。例如: ```xml &lt;item name="android:background"&gt;@drawable/button_...

    Android按钮控件的使用

    本篇将深入探讨Android平台上按钮控件的使用,包括其基本用法、自定义样式、监听事件以及在布局中的应用。 首先,要添加一个按钮到Android布局文件中,通常使用XML来定义。在`res/layout`目录下的XML布局文件中,...

    Android Studio 配置与使用

    - **使用方法:** 在对应的布局文件中,右键选择 **Generate Android Code &gt; Activity**,然后将生成的代码复制到对应的 Activity 中。 5. **AndroidSelectorsGenerate:** - **用途:** 快速生成按钮状态。 - *...

    Android代码-android-mdc-theming

    "Android代码-android-mdc-theming"是一个示例项目,用于展示如何在Android应用中设置和使用Material Components的主题。下面将详细解释如何使用MDC进行主题设计。 1. **Material Design Components介绍** ...

    Android之自定义ToggleButton使用

    在Android开发中,`ToggleButton`是一个非常常用的控件,它结合了`Switch`和`Button`的功能,可以方便地在两种状态之间切换。本篇将详细介绍如何在Android中自定义`ToggleButton`,并提供一个实用的示例。 一、`...

    android 中常用的图片素材直接拿来用(非常有用)

    本文将深入探讨如何在Android应用中有效地使用和管理图片资源,同时提供一些常用的图片素材供开发者参考。 首先,了解Android中的图片格式是非常重要的。Android支持多种图像格式,如JPEG、PNG、WebP等。其中,PNG...

    android switch 组件 4.0 以下的使用

    引入`SwitchCompat`后,需要在布局文件中使用`android.support.v7.widget.SwitchCompat`替换原来的`Switch`,并使用`AppCompat`相关的主题。 6. **使用SwitchCompat** 如果使用`SwitchCompat`,布局文件应如下所示...

    Android中实现Iphone样式的AlertDialog.rar

    要进一步模仿iPhone样式,可以创建一个自定义的主题,比如在`styles.xml`文件中定义一个名为`@style/iOSAlertDialogStyle`的主题。在这个主题中,可以设置窗口背景透明度、对话框边距、文字样式等属性,然后在创建`...

    Android中DateTimePicker的实现

    在Android开发中,DateTimePicker是用户界面中一个重要的组件,用于选择日期和时间。这个组件让用户能够方便地设定日期(年、月、日)和时间...不断学习和实践,你将能更熟练地掌握Android中DateTimePicker的使用。

Global site tag (gtag.js) - Google Analytics