文档章节

自定义Android标题栏TitleBar布局

程序袁_绪龙
 程序袁_绪龙
发布于 2014/10/08 17:30
字数 573
阅读 6202
收藏 5
点赞 0
评论 0
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); //软件activity的布局 getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar); //titlebar为自己标题栏的布局

Layout下建立titlebar.xml:

复制代码
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:orientation="horizontal" > <Button android:id="@+id/back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/back" android:textSize="18sp" android:textColor="#FF0000FF" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/share" android:textSize="18sp" android:textColor="#FFFFFF00" /> </LinearLayout>
复制代码
这样虽然可以在一定程度上定制标题栏, 不过, 这里无法改变标题栏的高度和背景(背景设置之后会在两端有两个
非常难看的边框). 据说, 原因是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="4" /> </manifest>
复制代码
之后借助于设置自定义的标题栏xml文件,就可以自定义标题栏布局了

© 著作权归作者所有

共有 人打赏支持
程序袁_绪龙
粉丝 97
博文 242
码字总数 66750
作品 0
普陀
程序员
android如何阻止app_name在标题栏中闪现

常见自定义titlebar的方法是在values文件夹中新建一个我们自己的titlebar主题,例如:  然后在manifest文件中为activity添加自定义主题,

华宰
2011/09/06
2.5K
0
Window attributes属性详解

以下属性以Dialog为例来讲解: <item name="windowBackground"> 窗体的背景 </item> <item name="windowFrame">Dialog 是否有边框 </item> <item name="windowNoTitle">窗体是否有标题</ite......

TedYin
2013/11/22
0
0
Android 透明(沉浸式)状态栏设计

一.透明(沉浸式)状态栏设计 通过第三方代码实现透明状态栏的主要代码如下。 用法如下 注意:状态栏透明可能导致布局向上便宜,所以需要设置根布局的android:fitsSystemWindows="true" 二....

IamOkay
2015/01/20
0
0
糊里糊涂学Android(2)——Activity隐藏标题及全屏

在大部分情况下,我们开发或使用的App都不需要Activity中原本的标题,都有自己独特或个性的标题栏,甚至有些App是全屏的。下面就来探究一下都有哪几种方法可以实现隐藏标题或全屏。 1.修改A...

笑缘心归
2014/03/17
0
0
Android自定义View的实现(四)

如果说要按类型来划分的话,自定义View的实现方式大概可以分为三种,自绘控件、组合控件、以及继承控件。那么下面我们就来依次学习一下,每种方式分别是如何自定义View的。 一、自绘控件 自绘...

JayPark不作死
2014/07/02
0
0
Android RadioButton实现Tab问题

我是一名Java程序猿,最近想学习Android应用开发,于是下载了OSC的Android版本客户端源码。然后参照客户端的功能,自己动手实践。先参照实现了用RadioButton实现的底部Tab栏,以及头部自定义...

熊猫大侠到此一游
2013/05/22
2.7K
1
requestWindowFeature(featrueId)简述

我们在开发程序是经常会需要软件全屏显示、自定义标题(使用按钮等控件)和其他的需求,今天这一讲就是如何控制Android应用程序的窗体显示.   首先介绍一个重要方法那就是requestWindowFe...

聂磊
2013/05/26
0
0
Android开发优化之——对界面UI的优化(2)

在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI布局文件。一般来说,为了保持不同窗口之间的风格统一,在这些UI布局文件中,几乎肯定会用到很多相同的布局。如果我们...

KingMing
2015/04/03
0
0
android include merge标签

include和merge标记的作用主要是为了解决layout的重用问题。 比如我们有三四个Activity但是他们都要用到同一个样式的标题栏,虽然我们把一样的代码copy个三四遍也没关系,但实在是太丑了,而...

卐字旗下的余晖
2014/05/28
0
0
android知识点记录汇总(不断更新中)

更新于2014-04-09 35. 如果ViewPager显示不出来看是不是没有设置高度,因为对于ViewPager来说,设置成wrapcontent是不行的.要么是matchparent要么呢,指定具体的高度. 更新于2013-08-27 34. in...

李海珍
2012/03/14
0
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

崛起于Springboot2.X之开发拦截器(21)

序言:几乎所有项目都需要拦截器,所以小伙伴们必须要掌握这门技术哦,不然只会mybaits增删改查那是实习生干的活呀。 1、创建拦截器类,implements HandlerInterceptor public class MyInce...

木九天
13分钟前
1
0
(转)SQL语句的执行顺序

(7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_type> JOIN <right_table> (2) ON <join_condition> (4) WHERE <where_condition> (5) GROUP BY <group_by_list> (......

Avner
23分钟前
0
0
1.14 救援模式

确保开机启动时连接镜像文件,如果是真机服务器,就需要:U盘或光盘镜像启动进入BIOS 不同主板进入bios按键不同,一般是F12或Esc 光标:移动到Boot(开机启动项) 减号移动:光标选中行,按-...

小丑鱼00
30分钟前
0
0
ES11-全文检索

高级别全文检索通常用于在全文本字段(如电子邮件正文)上运行全文检索。 他们了解如何分析被查询的字段,并在执行之前将每个字段的分析器(或search_analyzer)应用于查询字符串。 1.term查...

贾峰uk
33分钟前
0
0
java 复制对象有哪些方式

java 复制对象有哪些方式 Apache的 Common beanutils库 org.apache.commons.beanutils.BeanUtils.copyProperties(dest,origin); Springframework 的BeanUtil 依赖: <dependency> ......

黄威
49分钟前
2
0
jstack的简单使用

公司测试反应, 一个java应用的机器, 即使不做交易, cpu始终是30%多, 于是想到了jstack, 实践步骤记录一下: 1, 找出java应用的进程号 ps -ef|grep 应用名|grep -v grep 2, 找出pid下的cpu占用...

零二一七
56分钟前
1
0
导入CSV文件就行数据整理分析

#-*-coding:utf-8-*-import csv,os,re,mathlocalPath=input("请输入所有群文件的根目录:") #所有QQ群文件的物理根目录路径def info(): info_dic=[] dirList=os.listdi...

Kefy
今天
5
0
CoreText进阶(六)-内容大小计算和自动布局

CoreText进阶(六)-内容大小计算和自动布局 其它文章: CoreText 入门(一)-文本绘制 CoreText入门(二)-绘制图片 CoreText进阶(三)-事件处理 CoreText进阶(四)-文字行数限制和显示更...

aron1992
今天
1
0
一个Unity高人的博客,涉猎范围很广,深度也很深。

https://blog.csdn.net/ecidevilin/article/list/

爽歪歪ES
今天
0
0
Spring Cloud Config-Git后端

EnvironmentRepository的默认实现使用Git后端,这对于管理升级和物理环境以及审核更改非常方便。要更改存储库的位置,可以在Config Server中设置“spring.cloud.config.server.git.uri”配置...

itcloud
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部