自定义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!

人工智能实验室
相关文章相关文章
  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

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

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...