在项目开发中经常遇到这样的问题,在很多的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
分享到:
相关推荐
在Android开发中,为了实现界面的一致性和美观性,开发者通常会使用`Theme`和`Styles`来管理UI元素的样式和外观。本文将深入探讨Android中`Theme`和`Styles`的内部定义及其工作原理。 #### 二、Theme与Styles的基础...
在Android项目中使用IconFont,首先需要获取一个图标字体库,如阿里巴巴的IconFont图标库(http://www.iconfont.cn/)。下载或克隆你需要的图标库,通常会得到一个`.ttf`或`.otf`的字体文件。将这个文件复制到项目...
在本示例中,我们将深入探讨如何在Android应用程序中使用和自定义ActionBar。 1. **ActionBar基本功能** - **显示应用图标和标题**:默认情况下,ActionBar会显示应用的图标和标题,为用户提供清晰的应用标识。 -...
本篇文章将深入探讨如何在Android中有效地使用Action Bar,包括其基本概念、设置方法以及自定义选项。 首先,Action Bar在Android 3.0(API级别11)被引入,旨在提高用户体验和应用一致性。在早期版本的Android中,...
本文将详细讲解如何在Android中使用`Font`和`style`来定义App全局字体样式。 首先,让我们了解`Font`的概念。在Android中,`Font`通常指的是字体文件,通常以`.ttf`(TrueType Font)或`.otf`(OpenType Font)格式...
总结起来,Android中使用`Activity`作为弹出式对话框主要涉及以下几个步骤: 1. 创建一个具有对话框样式的`Activity`。 2. 设计对话框的界面布局。 3. 设置窗口属性以达到对话框效果,如背景淡化和动画。 4. 使用...
这个文件可能包含了一个自定义的ProgressBar类,通过扩展`ProgressBar`并覆盖其`onDraw()`方法来实现自定义的绘制逻辑,或者它可能包含了一个布局文件,展示了如何在XML中使用上述方法自定义ProgressBar。...
Android系统通常使用UTF-8编码来处理字符串,而有些设备或API可能使用GBK或其他编码,这可能导致乱码。在必要时,需要对输入和输出数据进行正确的编码转换。 总的来说,解决Android Things中的中文乱码问题需要理解...
在Android应用开发中,有时我们需要将一些系统配置信息存储在外部文件中,以方便管理和更新。在这种情况下,`ini`文件格式是一个常见的选择,因为它的结构简单,易于读写。本文将详细介绍如何在Android项目中读取...
可以通过修改`res/values/styles.xml`中的AppTheme来调整RatingBar的颜色和大小。 2. 创建自定义样式 创建一个XML资源文件(如`res/drawable/rating_bar.xml`),定义星星的样式: ```xml <layer-list xmlns:...
5. **性能优化**:在Android应用中使用WebView加载大量代码可能会导致性能问题,因此可以考虑预处理代码,提前生成高亮后的HTML,减少WebView的实时处理负担。 6. **兼容性问题**:不同的Android版本对WebView的...
1. **默认选中状态颜色**:在Android的`res/values/styles.xml`文件中,你可以定义一个主题,包含按钮的正常状态和按下状态的颜色。例如: ```xml <item name="android:background">@drawable/button_...
本篇将深入探讨Android平台上按钮控件的使用,包括其基本用法、自定义样式、监听事件以及在布局中的应用。 首先,要添加一个按钮到Android布局文件中,通常使用XML来定义。在`res/layout`目录下的XML布局文件中,...
- **使用方法:** 在对应的布局文件中,右键选择 **Generate Android Code > Activity**,然后将生成的代码复制到对应的 Activity 中。 5. **AndroidSelectorsGenerate:** - **用途:** 快速生成按钮状态。 - *...
"Android代码-android-mdc-theming"是一个示例项目,用于展示如何在Android应用中设置和使用Material Components的主题。下面将详细解释如何使用MDC进行主题设计。 1. **Material Design Components介绍** ...
在Android开发中,`ToggleButton`是一个非常常用的控件,它结合了`Switch`和`Button`的功能,可以方便地在两种状态之间切换。本篇将详细介绍如何在Android中自定义`ToggleButton`,并提供一个实用的示例。 一、`...
本文将深入探讨如何在Android应用中有效地使用和管理图片资源,同时提供一些常用的图片素材供开发者参考。 首先,了解Android中的图片格式是非常重要的。Android支持多种图像格式,如JPEG、PNG、WebP等。其中,PNG...
引入`SwitchCompat`后,需要在布局文件中使用`android.support.v7.widget.SwitchCompat`替换原来的`Switch`,并使用`AppCompat`相关的主题。 6. **使用SwitchCompat** 如果使用`SwitchCompat`,布局文件应如下所示...
要进一步模仿iPhone样式,可以创建一个自定义的主题,比如在`styles.xml`文件中定义一个名为`@style/iOSAlertDialogStyle`的主题。在这个主题中,可以设置窗口背景透明度、对话框边距、文字样式等属性,然后在创建`...
在Android开发中,DateTimePicker是用户界面中一个重要的组件,用于选择日期和时间。这个组件让用户能够方便地设定日期(年、月、日)和时间...不断学习和实践,你将能更熟练地掌握Android中DateTimePicker的使用。