`

自定义android标题栏TitleBar

阅读更多
Android程序的标题栏TitleBar区域很单调,如果想个性化一些可以通过下面的方法来为自己软件的标题定制一个layout布局文件,比如浏览器的标题栏,它包含了网站的Favicon,自定义的进度条,和不确定的进度指示等等,实现的方法自己控制吧。下面代码在onCreate中使用,同时顺序不要改变,否则将无法生效:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
	//软件activity的布局
setContentView(R.layout.main); 
//titlebar为自己标题栏的布局 
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar); 
// Set up the custom title
TextView mTitle = (TextView) findViewById(R.id.title_left_text);
mTitle.setText(R.string.app_name);
TextView rTitle = (TextView) findViewById(R.id.title_right_text);


R.layout.titlebar布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_vertical"
  >
  <TextView android:id="@+id/title_left_text"
      android:layout_alignParentLeft="true"
      android:ellipsize="end"
      android:singleLine="true"
      style="?android:attr/windowTitleStyle"
      android:layout_width="wrap_content"
      android:layout_height="fill_parent"
      android:layout_weight="1"
    />
    <TextView android:id="@+id/title_right_text"
        android:layout_alignParentRight="true"
        android:ellipsize="end"
        android:singleLine="true"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:textColor="#fff"
        android:layout_weight="1" 
    />
</RelativeLayout>

  这样虽然可以在一定程度上定制标题栏, 不过, 这里无法改变标题栏的高度和背景(背景设置之后会在两端有两个非常难看的边框). 据说, 原因是android 固有的.

  这里有修改方法:

  原理是这样的. 直接像上述代码那样添加title仅仅是把一个子界面添加到原有的title上的, 并没有改变原来的属性, 比如 标题栏大小, 标题栏背景. 这些需要在theme 主题里面定义.

  因此先定义一个style, 若修改背景请修改android:windowTitleBackgroundStyle

  若修改标题栏高度,请修改android:windowTitleSize

  例子:

  
<?xml version="1.0" encoding="utf-8"?>
  <resources xmlns:android="http://schemas.android.com/apk/res/android">
	  <style name="CustomWindowTitleBackground">
		  <item name="android:background">#565656</item>
		  </style>
		  <style name="test" parent="android:Theme">
		  <item name="android:windowTitleSize">50dp</item>
		  <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>
	  </style>
  </resources>
  
在程序的android manifest.xml中对应activity中添加属性 android:theme = "@style/test" 就可以了

  
<?xml version="1.0" encoding="utf-8"?>
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
	  package="com.guardian"
		android:versionCode="1"
		android:versionName="1.0">

	  <application android:icon="@drawable/icon" android:label="@string/app_name" >
	  <activity android:name=".Guardian"
		  android:label="@string/app_name"
		  android:theme = "@style/test" //就在这里
		  >
		  <intent-filter>
			  <action android:name="android.intent.action.MAIN" />
			  <category android:name="android.intent.category.LAUNCHER" />
		  </intent-filter>
	  </activity>
	  </application>
	  <uses-sdk android:minSdkVersion="8" />
  </manifest>
  

之后借助于设置自定义的标题栏xml文件,就可以自定义标题栏布局了

分享到:
评论

相关推荐

    Android标题栏TitleBar全攻略

    Android 标题栏 TitleBar 是一个自定义的 UI 组件,由 LinearLayout 继承而来,主要用于展示浏览器的标题栏信息,包括网站图标、标题、动画进度条和背景进度条等。下面我们将详细介绍 Android 标题栏的实现方法和...

    Android项目中自定义顶部标题栏

    下面我们将深入探讨如何在Android项目中实现自定义标题栏,包括定义标题栏布局、自定义TitleActivity以及实现在标题栏下内容的切换。 首先,**定义标题栏布局**是创建自定义标题栏的第一步。这通常涉及创建一个XML...

    Android标题栏TitleBar介绍

    ### Android标题栏(TitleBar)介绍 在Android应用开发中,`TitleBar`是一个非常重要的UI组件,它位于应用程序界面的顶部,用于显示应用名称、当前活动页面的标题以及一些功能按钮等信息。通过合理的设计与实现,...

    Android自定义标题栏(并加入返回按钮)demo

    在Android应用开发中,自定义标题栏是一种常见的需求,它能提供更加个性化和与应用风格一致的用户体验。本文将深入探讨如何在Android中创建一个自定义的标题栏,并且添加一个返回按钮。我们将通过以下几个步骤来实现...

    Android 自定义控件 组合控件 TitleBar

    本文将深入探讨如何创建一个自定义的组合控件,特别是针对App标题栏(TitleBar)的设计与实现。我们将从基本的自定义控件概念讲起,并逐步构建一个完整的TitleBar组件。 首先,了解自定义控件的基本原理。在Android...

    TitleBar-master_Android通用标题栏_

    `TitleBar-master`项目是一个专门为Android应用设计的通用标题栏组件,旨在帮助开发者快速、便捷地实现美观且功能丰富的标题栏效果。 该项目的核心知识点包括: 1. **自定义View**: `TitleBar-master`通过自定义...

    CustomTitleBar, 【通用标题栏】通用Android标题栏控件 A Common Titlebar For Android.zip

    《通用Android标题栏控件——CustomTitleBar深度解析》 在Android应用开发中,界面设计是用户体验的关键一环,而标题栏(Title Bar)作为应用界面的重要组成部分,其设计和功能实现往往直接影响到用户对应用的第一...

    Android-TitleBar满足各种日常使用的标题栏不要让你的时间浪费在写标题栏上

    "Android-TitleBar"项目旨在提供一个全面、易用的标题栏解决方案,帮助开发者快速集成并定制符合应用需求的标题栏,避免花费大量时间在重复的标题栏编写工作上。 该TitleBar库提供了丰富的功能,包括但不限于以下几...

    Android自定义titlebar中设置progressbar

    在Android应用开发中,标题栏(titlebar)是应用程序界面中的一个重要组成部分,它通常用于显示应用的名称或当前页面的标题。然而,标题栏也可以进行自定义,以满足更多的功能需求,比如添加一个进度条(progressbar...

    【0积分下载】TitleBar:打造高效Android标题栏的新选择

    TitleBar:打造高效Android标题栏的新选择 在Android应用开发中,标题栏是用户界面的重要组成部分。一个好的标题栏不仅能够提升应用的专业感,还能增强用户体验。然而,传统的标题栏实现方式往往存在代码冗余、样式...

    自定义的TitleBar

    标题中的“自定义的TitleBar”指的是在Android或者iOS应用开发中,开发者为了满足特定设计需求,不使用系统默认的标题栏(ToolBar或NavigationBar),而是自己编写代码创建的个性化标题栏。这种自定义通常是为了实现...

    Android 通用标题栏 简单封装实现

    在Android应用开发中,标题栏(Toolbar)是用户界面中的重要组成部分,它为用户提供应用程序的标识、导航功能以及操作选项。本教程将详细介绍如何通过简单的封装实现一个适用于各种场景的通用标题栏。参考链接:...

    Android自定义通用标题栏CustomTitleBar

    本文实例为大家分享了Android自定义通用标题栏的具体代码,供大家参考,具体内容如下/p&gt; 1自定义一个public_titlebar.xml文件 &lt;?xml version=1.0 encoding=utf-8?&gt; &lt;LinearLayout xmlns:android=...

    Android 上滑隐藏标题栏下滑显示标题栏(带动画效果、无卡顿、无空白)

    要实现标题栏的隐藏和显示,我们可以创建一个自定义的布局容器,例如`CustomTitleBarLayout`,继承自`FrameLayout`。在该布局中,我们需要添加一个标题栏视图,并监听滑动事件。可以通过重写`onTouchEvent()`方法,...

    安卓自定义titlebar和卫星菜单(修改)

    通过分析这些文件,开发者可以学习并实践自定义Android标题栏和卫星菜单的具体实现方式。 总之,自定义标题栏和卫星菜单是Android开发中的常见实践,它们可以帮助开发者打造独特且符合用户习惯的应用界面。通过理解...

    Android-TitleBar自定义标题居中的ToolBar

    通过以上步骤,我们就成功地创建了一个自定义的TitleBar,它可以居中显示标题,并且允许在左右两侧添加自定义View。这样的TitleBar不仅提高了应用的可定制性,还能使UI设计更加符合用户的交互习惯。在实际项目中,...

    安卓自定义titlebar和卫星菜单

    在Android应用开发中,UI设计和交互体验是至关重要的元素,而标题栏(titlebar)和菜单则是用户界面中的核心部分。本教程将深入探讨如何在Android中实现自定义的标题栏以及卫星菜单的运用,通过源码分析,帮助开发者...

    Android 简易的动态标题栏

    Android允许开发者自定义全局或局部的主题,包括标题栏的样式。可以在`styles.xml`文件中定义一个自定义主题,然后在Activity中应用。这样可以统一应用的视觉风格,同时方便修改和维护。 9. **兼容性处理**: ...

    Android中自定义标题栏样式的两种方法

    在Android应用开发中,自定义标题栏样式是一个常见的需求,以提供更个性化和与应用主题相符的用户体验。本文将详细讲解两种在Android中实现自定义标题栏样式的常见方法。 ### 方法一:通过代码动态设置 这种方法...

Global site tag (gtag.js) - Google Analytics