自定义Android 标题栏TitleBar布局

  次阅读 来源:互联网(转载协议) 2015-10-13 12:38 我要评论(0)

很多网友发现自己Android程序的标题栏TitleBar区域很单调,如果想个性化一些可以通过下面的方法来为自己软件的标题定制一个layout布 局文件,比如浏览器的标题栏,它包含了网站的Favicon,自定义的进度条,和不确定的进度指示等等,实现的方法自己控制吧。下面代码在 onCreate 中使用,同时顺序不要改变,否则将无法生效:

< !--< br /> < br /> Code highlighting produced by Actipr. CodeHighlighter (freeware)< br /> http://www.CodeHighlighter.com/< br /> < br /> -->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

例子:

< !--< br /> < br /> Code highlighting produced by Actipro CodeHighlighter (freeware)< br /> http://www.CodeHighlighter.com/< br /> < br /> -->< ? 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" 就可以了

< !--< br /> < br /> Code highlighting produced by Actipro CodeHighlighter (freeware)< br /> http://www.CodeHighlighter.com/< br /> < br /> -->< ? 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 >

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 全球陷入"区块链狂热"潮,大规模应用还需等待

    全球陷入"区块链狂热"潮,大规模应用还需等待

  • 汤晓鸥:人工智能的中国式文艺复兴

    汤晓鸥:人工智能的中国式文艺复兴

  • 马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

    马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

  • 区块链最近太火,但A股多家公司明确表态不考虑涉足

    区块链最近太火,但A股多家公司明确表态不考虑涉足

网友点评网友点评
阅读推荐阅读推荐

算法 任何一个入门的软件开发人员都会听到这句话:算法是软件的灵魂!近年来大火的机器学习即是在算法在人工智能上的集中体现。今日头条通...

据《日本经济新闻》报道,日本东京大学教授稻叶雅幸等人开发出再现日本人骨骼肌肉构造的机器人。机器人各部位的肌肉和骨骼长度与日本人的平...

以奥黛丽-赫本为原型打造的人形机器人索菲娅首次拜访了印度。索菲娅是世界上首位获得公民身份的机器人,她在12月30日出现在了印度理工学院...

在查获现场,代售点电脑旁的一台机器人通过敲击电脑键盘抢票。 广州日报惠州讯 (全媒体记者秦仲阳 通讯员张中铃摄影报道)2018年春运售票已...