自定义Android标题栏TitleBar布局
16lz
2021-01-23
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
例子:
在程序的android manifest.xml中对应activity中添加属性android:theme = \"@style/test\"就可以了
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 version=\"1.0\" encoding=\"utf-8\" ?>
- < resourcesxmlns:android =\"http://schemas.android.com/apk/res/android\" >
-
- < stylename =\"CustomWindowTitleBackground\" >
- < itemname =\"android:background\" > #565656 </ item >
- </ style >
-
- < stylename =\"test\"parent =\"android:Theme\" >
- < itemname =\"android:windowTitleSize\" > 50dp </ item >
- < itemname =\"android:windowTitleBackgroundStyle\" > @style/CustomWindowTitleBackground </ item >
- </ style >
- </ resources >
在程序的android manifest.xml中对应activity中添加属性android:theme = \"@style/test\"就可以了
- <? xml version=\"1.0\" encoding=\"utf-8\" ?>
- < manifestxmlns:android =\"http://schemas.android.com/apk/res/android\"
- package =\"com.guardian\"
- android:versionCode =\"1\"
- android:versionName =\"1.0\" >
- < applicationandroid:icon =\"@drawable/icon\"android:label =\"@string/app_name\" >
- < activityandroid:name =\".Guardian\"
- android:label =\"@string/app_name\"
- android:theme= \"@style/test\" //就在这里
- >
- < intent-filter >
- < actionandroid:name =\"android.intent.action.MAIN\" />
- < categoryandroid:name =\"android.intent.category.LAUNCHER\" />
- </ intent-filter >
- </ activity >
- </ application >
- < uses-sdkandroid:minSdkVersion =\"4\" />
- </ manifest >
之后借助于设置自定义的标题栏xml文件,就可以自定义标题栏布局了
原文地址:http://www.cmd100.com/bbs/thread-5269-1-1.html
更多相关文章
- Android入门:HTML布局中Android程序与JAVASCRIPT的交互
- android中自定义Button,设置不同背景图片。
- Android学习笔记(1) Android 布局管理器 之 LinearLayout
- Android一些常用知识和代码(不断更新)
- android上滑某个布局固定悬浮
- Android中CoordinatorLayout(协调布局)的使用
- 使用Git下载Google Android源代码
- Android 5.0新控件 AppBarLayout | 嵌套布局 介绍及使用详情