在安卓中不喜欢系统默认的标题栏,那么如何让自定义一个自己的标题栏呢。

自定义后的标题栏如下:

首先这里需要定义一个自定义的标题栏布局 title.xml文件 (里边需要两个图片这个很简单)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="horizontal"  android:layout_width="fill_parent"   android:layout_height="50dp"       <!-- 新的 标题栏的 高度-->android:background="#f2f8f8"><ImageButtonandroid:id="@+id/imageButton1"android:layout_width="40dp"android:layout_height="40dp"      android:layout_centerVertical="true"android:layout_alignParentLeft="true"android:layout_marginLeft="20dp"android:src="@drawable/lbt" /><TextView android:layout_centerInParent="true"android:layout_width="wrap_content"android:layout_height="match_parent"android:text="自定义标题栏"android:textSize="20sp"android:gravity="center_vertical"/><ImageButtonandroid:id="@+id/imageButton1"android:layout_width="40dp"android:layout_height="40dp"android:layout_centerInParent="true"android:layout_alignParentRight="true"android:layout_marginRight="20dp"android:src="@drawable/rbt" /></RelativeLayout>  

然后再MainActivity中声明使用自定义的标题栏

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//声明使用自定义的标题栏requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);setContentView(R.layout.activity_main);//使用自定义的标题栏getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title); }}

接下来我们再来设置标题栏的高度 以及 处理两侧没有完全覆盖原始标题栏的bug,这时 我们需要在定义一个style文件 MyStyle.xml

在自定义标题栏中经常回遇到没有填充完全的效果如下图:

MyStyle.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="titleBarStyle" parent="android:Theme"><item name="android:windowTitleSize">50dp</item><!-- 原始标题栏的高度 --><item name="android:padding">0dp</item><!-- 使新的标题栏完全延伸到对齐到原始标题栏的两边 -->
</style>
</resources>

然后呢 在 AndroidManifest.xml 中给activity 添加 一个theme属性

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.mytitle"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="17" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name="com.example.mytitle.MainActivity"android:label="@string/app_name" android:theme="@style/titleBarStyle"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

在一样中 有两处给标题栏添加了高度设置,一个是原始的标题栏高度,一个是自定义标题栏的高度。一般设为两个相等。不然或者自定义的标题栏只占用了原始标题栏的上部分。或者只显示了自定义标题栏的上部分。
到这里基本就修改完成了。
源码下载地址:http://download.csdn.net/detail/liuhenghui5201/7644123

安卓学习随笔 -- 自定义标题栏相关推荐

  1. Android学习之自定义标题栏

    一.如今好多的Android APP都在界面的顶部放置一个标题栏,标题栏里通常会有一两个按钮可用于返回和其它操作,虽然Android系统中已经给每个Activity提供了标题栏功能,但是这里介绍一下我 ...

  2. 安卓学习:自定义图像

    文章目录 效果 代码 创建custom类做为画板 custom.java 主界面类MainActivity.java 效果 代码 创建custom类做为画板 custom.java import an ...

  3. 【QT 5 设置自定义标题栏+学习:《QT实现鼠标拖动调整窗口大小》+基础样例】

    [QT 5 设置自定义标题栏+学习:<QT实现鼠标拖动调整窗口大小>+基础样例] 1.说明 2.实验环境 3.实验目的 4.参考文章 5.实验步骤 (1)下载代码,运行没有错误. (2)加 ...

  4. Android 安卓 自定义标题栏+沉浸式状态栏

    Android 安卓 自定义标题栏+沉浸式状态栏 由于Android原生的标题栏单调,简单,并不是很好看,自定义个性化的标题栏可以让app更加美观. Android 4.4以后增加了沉浸式透明状态栏. ...

  5. 安卓学习专栏——实战项目酷欧天气(2)遍历全国省市县数据

    步骤 系列文章 前言 1.实现效果 2.项目结构 util包 util包下新建HttpUtil util包下新建Utility 3.新建choose_area.xml布局 4.新建ChooseArea ...

  6. Delphi面向对象学习随笔一:类与对象的关系

    Delphi面向对象学习随笔一:类与对象的关系 作者:巴哈姆特 http://www.cnpack.org (转载请注明出处并保持完整) 工作几年了,总想做点总结,于是有了这篇东西,叫随笔吧呵     ...

  7. 2020年安卓学习笔记目录

    文章目录 一.讲课笔记 二.安卓案例 三.安卓实训项目 四.学生安卓学习博客 五.安卓课后作业 (一)界面设计练习 1.制作登录界面 2.制作部队管理界面 3.制作灭火救援界面 4.制作交付界面 5. ...

  8. 【安卓学习之互动直播】 腾讯云直播 1 - 注册/登录/个人信息

    █ [安卓学习之互动直播] 腾讯云直播 1 - 注册/登录/个人信息 █ 相关文章: ● [安卓学习之互动直播] 腾讯云直播 1 - 注册/登录/个人信息 ● [安卓学习之互动直播] 腾讯云直播 2 ...

  9. Vue学习随笔+商城项目【上】

    更新日期:2021-02-10 晚 [新年快乐] 附:Vue学习随笔+商城项目[下] 目录(部分) (一)ES6补充 1.1块级作用域 1.1.1 什么是变量作用域 1.1.2 没有块级作用域造成的问 ...

最新文章

  1. [转载]利用@media screen实现网页布局的自适应,@media screen and
  2. iOS 9应用开发教程之多行读写文本ios9文本视图
  3. 用Arduino检测环境中的温湿度
  4. hbuilder打包的app如何设置自动清理缓存_手机空间不足,这些“隐形”文件如何找到删除?...
  5. 想买啥 VS 买了啥!理想与现实的差距咋就这么大咧?
  6. 「安全技术」针对常见混淆技术的反制措施
  7. python 3.9 发布计划_Python 3.9.0 beta4 发布
  8. [转载] Java Formatter toString()方法与示例
  9. ViTAEv2世界第一:6亿参数模型,ImageNet Real 91.2%最高准确率,更大模型、更多任务、更高效率...
  10. 编译安装mysql gmake,编译安装mysql
  11. C语言—预定义宏调试__LINE__、__func__
  12. eclipse maven 打war包的几种方式
  13. java自动识别文件编码格式
  14. 【Hibernate步步为营】--核心对象+持久对象全析(二)
  15. 修改element ui的table的某一列的样式
  16. 超人工智能语音合成系统问世
  17. loj 3090 「BJOI2019」勘破神机 - 数学
  18. 新疆库尔勒市杜鹃河上演人禽共泳和谐相处画卷
  19. Python数据分析训练营——Python数据分析之Panads-1
  20. 解决电脑浏览器打不开网页问题

热门文章

  1. Django 上传附件报The number of GET/POST parameters exceeded settings.DATA_UPLOAD_MAX_NUMBER_FIELDS错误
  2. Django使用消息提示简单的弹出个对话框
  3. Android之Intent传递数据
  4. 实现option上下移动_JS实现Select的option上下移动的方法
  5. 华为私有云的搭建方案_华为云搭建word press
  6. excel重复上一步快捷键_工作再忙也要学会的十个Excel快捷键
  7. C# DataGridView属性设置
  8. java memcmp_C 库函数
  9. jeecg集成积木报表错误_6688种玩法的电子积木,是什么体验?「中外玩具网测评」...
  10. zookeeper和Kafka的关系