很多网友发现自己Android程序的标题栏TitleBar区域很单调,如果想个性化一些可以通过下面的方法来为自己软件的标题定制一个layout布局文件,比如浏览器的标题栏,它包含了网站的Favicon,自定义的进度条,和不确定的进度指示等等,实现的方法自己控制吧。下面代码在onCreate中使用,同时顺序不要改变,否则将无法生效:
Java代码
1.requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
2.setContentView(R.layout.main); //软件activity的布局
3.getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar); //titlebar为自己标题栏的布局
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main); //软件activity的布局
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar); //titlebar为自己标题栏的布局
这样虽然可以在一定程度上定制标题栏, 不过, 这里无法改变标题栏的高度和背景(背景设置之后会在两端有两个非常难看的边框). 据说, 原因是android 固有的.
这里有修改方法:
原理是这样的. 直接像上述代码那样添加title仅仅是把一个子界面添加到原有的title上的, 并没有改变原来的属性, 比如 标题栏大小, 标题栏背景. 这些需要在theme 主题里面定义.
因此先定义一个style, 若修改背景请修改android:windowTitleBackgroundStyle
若修改标题栏高度,请修改android:windowTitleSize
例子:
Xml代码
1.<?xml version="1.0" encoding="utf-8"?>
2.<resources xmlns:android="http://schemas.android.com/apk/res/android">
3.
4.
5.<style name="CustomWindowTitleBackground">
6. <item name="android:background">#565656</item>
7.</style>
8.
9.
10.<style name="test" parent="android:Theme">
11. <item name="android:windowTitleSize">50dp</item>
12. <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>
13.</style>
14.</resources>
<?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代码
1.<?xml version="1.0" encoding="utf-8"?>
2.<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3. package="com.guardian"
4. android:versionCode="1"
5. android:versionName="1.0">
6. <application android:icon="@drawable/icon" android:label="@string/app_name" >
7. <activity android:name=".Guardian"
8. android:label="@string/app_name"
9. android:theme = "@style/test" //就在这里
10. >
11. <intent-filter>
12. <action android:name="android.intent.action.MAIN" />
13. <category android:name="android.intent.category.LAUNCHER" />
14. </intent-filter>
15. </activity>
16.
17. </application>
18. <uses-sdk android:minSdkVersion="4" />
19.
20.</manifest>
<?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文件,就可以自定义标题栏布局了
分享到:
相关推荐
Android 自定义组合控件 App标题栏 从基本的自定义控件讲起 及其系列文章
本文实例为大家分享了Android自定义通用标题栏的具体代码,供大家参考,具体内容如下/p> 1自定义一个public_titlebar.xml文件 <?xml version=1.0 encoding=utf-8?> <LinearLayout xmlns:android=...
本文实例为大家分享了Android自定义顶部标题栏展示的具体代码,供大家参考,具体内容如下 思路及实现步骤 1.定义标题栏布局 2.自定义TitleActivity控制标题栏按钮监听 3.在TitleActivity中实现标题栏以下内容切换 ...
开发过程中,如果页面过多,需要构建大量重复的标题栏布局,浪费开发时间且不利于后期维护。本项目总结了几种常用的使用场景,将标题栏封装成控件,Java代码实现,对当前主流的沉浸式提供了支持,供有需要的同学使用...
原装的Android标题栏配色比较单调,就是黑色的一坨,现在假设你的软件需要独自添加标题栏,这样不仅美观而且可以将进度条等加进去,如何实现: 方法一、在你的那张Activity中onCreate方法中加上下面代码: ...
本文实例为大家分享了Android实现简单顶部标题栏的具体代码,供大家...1.创建一个布局文件,命名,layout_titlebar,来部署我们的标题栏样式,可以自定义更改,图片文件可暂时用自己的替代 <?xml version=1.0 encoding=u
主要介绍了Android编程自定义title bar(标题栏)的方法,结合实例形式分析了Android针对标题栏的设置与页面布局操作相关技巧,需要的朋友可以参考下
因为原生的title标题是再左边的,然后去给Titlebar设置自定义View的时候,也会不尽人意,标题不是再正中间的,标题栏太高等问题。 我们要求的是这样的,右边的按钮可以显示或者隐藏。 于是就决定自己写一个...
想把最近做项目学会的东西整理一下,项目中有一个要求,就是实现ScrollView滑动时标题栏的隐藏效果,整体效果是ScrollView从头往下滑动的时候慢慢的隐藏标题栏的效果
一个简单的自定义标题栏 在布局文件中的应用: <aa.customtitlebar.ui.widget.CustomTitleBar android:id="@+id/id_ctb_main" android:layout_width="match_parent" android:layout_height="50dp" android:...
Android相继推出了actionBar, toolBar, 相信有用到的朋友也会遇到一些不如意的时候,比如标题栏居中时,需要自定义xml文件给toolBar等,不了解actionBar,toolBar的可以去找相应的文章了解,这里介绍自定义titleBar...
支持自定义标题栏布局,支持XML中直接以子布局编写 支持自定义前景布局,如显示Loading效果 支持自定义背景布局,如图片等 支持自定义底部分割线,可以投影效果显示在外部 支持自适应状态栏暗亮色图标模式,可实时...
标题栏:去除难用的toolbar,改成自定义的titlebar。高度44dp,标题居中,颜色引用activity主题设置colorPrimary.可以自己设置. 底部弹出框:原项目两边有间距,现改成铺满屏幕宽度弹出 默认图片更改成黑灰色背景,...
android 自4.4开始新加入透明状态栏功能,状态栏可以自定义颜色背景,使titleBar能够和状态栏融为一体,增加沉浸感。 如上图Flutter状态栏默认为黑色半透明,那么如何去掉这个状态栏的黑色半透明背景色,让其和标题...
4.4.1、非全屏状态下不显示title标题栏 50 4.4.2、标题栏进度指示器 50 4.4.3、titleBar 高级实现方法(更美观) 51 4.4.4、获取标题栏和状态栏高度 57 4.4.5、标题栏显示简单的进度框 57 4.5、MENU 58 4.5.1、简单的...
4.4.1、非全屏状态下不显示title标题栏 50 4.4.2、标题栏进度指示器 50 4.4.3、titleBar 高级实现方法(更美观) 51 4.4.4、获取标题栏和状态栏高度 57 4.4.5、标题栏显示简单的进度框 57 4.5、MENU 58 4.5.1、简单的...
看到很多项目会有实现自己的标题栏的做法,通常的界面是左边按钮或文字,加上中间的标题和右边的按钮或文字组成的。比较好的一种做法是使用include标签,复用同一个xml文件来实现布局的复用。但是这种方法是通过代码...