怎么自定义Android标题栏修改TitleBar的布局?

怎么自定义Android标题栏修改TitleBar的布局?,第1张

Android程序默认的Activity标题栏只能显示一段文字,而且不能改变它的布局、颜色、标题栏的高度等。如果想要在标题栏加上个图标、button、输入框、进度条、修改标题栏颜色等,只能使用自定义的标题栏。自定义标题栏可以通过在onCreate函数中添加以下代码来实现,需要注意的是代码的顺序必须按照下面的样式,否则将无效。

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE)

setContentView(R.layout.mainactivity) //Activity的布局

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.titlebar) //标题栏的布局

虽然上面这样可以在标题栏加入一些控件,但是仍然不能改变标题栏的高度、背景色,要想达到这个目的,只能使用theme(主题)。因此往project里先添加一个style。改变背景色修改android:windowTitleBackgroundStyle的值,改变标题栏高度则修改android:windowTitleSize的值。下面是一个示例:


#778899


32dp
@style/CustomWindowTitleBackground


接着再修改AndroidManifest.xml文件,找到要自定义标题栏的Activity,添加上android:theme值,比如:

Java代码




android:theme值就是上面那个style.xml文件里定义的一个style的name值。

按照以上的步骤,修改标题栏布局、高度、背景色的功能就实现了。

设置Android的Activity标题的背景是有多种方法的

首先最简单的是直接在布局里面设置个background

其中background是可以直接使用颜色或者图片或者是自定义的形状

还有就是可以利用Android:theme 自带的主题背景设置

设置theme更改主题背景

下面是自带的theme说明文档

Android应用开发——系统自带样式Android:theme

•android:theme="@android:style/Theme.Dialog" 将一个Activity显示为能话框模式

•android:theme="@android:style/Theme.NoTitleBar" 不显示应用程序标题栏

设置Android的Activity标题的背景是有多种方法的

首先最简单的是直接在布局里面设置个background

其中background是可以直接使用颜色或者图片或者是自定义的形状

还有就是可以利用Android:theme 自带的主题背景设置

设置theme更改主题背景

下面是自带的theme说明文档

Android应用开发——系统自带样式Android:theme 

•android:theme="@android:style/Theme.Dialog"   将一个Activity显示为能话框模式

•android:theme="@android:style/Theme.NoTitleBar"  不显示应用程序标题栏

•android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  不显示应用程序标题栏,并全屏

•android:theme="Theme.Light"  背景为白色

•android:theme="Theme.Light.NoTitleBar"  白色背景并无标题栏 

•android:theme="Theme.Light.NoTitleBar.Fullscreen"  白色背景,无标题栏,全屏

•android:theme="Theme.Black"  背景黑色

•android:theme="Theme.Black.NoTitleBar"  黑色背景并无标题栏

•android:theme="Theme.Black.NoTitleBar.Fullscreen"    黑色背景,无标题栏,全屏

•android:theme="Theme.Wallpaper"  用系统桌面为应用程序背景

•android:theme="Theme.Wallpaper.NoTitleBar"  用系统桌面为应用程序背景,且无标题栏

•android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen"  用系统桌面为应用程序背景,无标题栏,全屏

•android:theme="Translucent" 

•android:theme="Theme.Translucent.NoTitleBar" 

•android:theme="Theme.Translucent.NoTitleBar.Fullscreen" 

•android:theme="Theme.Panel" 

•android:theme="Theme.Light.Panel"

下面看看具体的布局代码

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:gravity="center"

    android:layout_gravity="center"

    android:orientation="vertical"

    android:background="@drawable/bkg_img_default" >

     <!-- 使用图片来改变布局背景 -->

效果

当然一般都要加上删除标题的

// 这个去除标题的代码一定要加载布局文件之前

requestWindowFeature(Window.FEATURE_NO_TITLE)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/7781417.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存