`
java-admin
  • 浏览: 1363776 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

自定义Android 标题栏TitleBar布局

阅读更多

http://www.blogjava.net/Green-nut/articles/332617.html?opt=admin

 

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

<!--<br /> <br /> Code highlighting produced by Actipro 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>
        
</activity>

    
</application>
    
<uses-sdk android:minSdkVersion="4" />

</manifest> 
之后借助于设置自定义的标题栏xml文件,就可以自定义标题栏布局了

Android改变窗口标题栏的布局

 

一、  重点
一般应用的Title都是建立应用时在AndroidManifest.xml中配置的,或是用setTitle设置的简单字符串,要是想加入按钮,图片等多个复杂的布局,使用以下方法:
在窗口建立时,可以把一个xml布局设置成该应用的Title

二、  实例

a)       功能:把title设置成为一个字串和一个按钮的组合

b)       修改xxActivity.java代码
public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
//
注意顺序
         setContentView(R.layout.main);                                                                         
// 注意顺序
         getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
      // 注意顺序
                            R.layout.title);
}

c)          填加title.xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android=
http://schemas.android.com/apk/res/android
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
      <TextView android:id="@+id/text" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentLeft="true" 
        android:text="text" /> 
      <Button android:id="@+id/button" 
        android:layout_width="wrap_content" 
        android:layout_height="30px" 
        android:text="button" />
</LinearLayout>

三、  注意

a)          注意设置顺序
requestWindowFeature
要在setContentView之前
getWindow().setFeatureInit
最好在setContentView之后

b)         注意requestWindowFeature(Window.FEATURE_CUSTOM_TITLE)不要和其它对TITLE的设置requestWindowFeature(xxxx)一起使用

 http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1375.entry

分享到:
评论

相关推荐

    Android自定义顶部标题栏

    本文实例为大家分享了Android自定义顶部标题栏展示的具体代码,供大家参考,具体内容如下 思路及实现步骤 1.定义标题栏布局 2.自定义TitleActivity控制标题栏按钮监听 3.在TitleActivity中实现标题栏以下内容切换 ...

    Android代码-android-titlebar

    开发过程中,如果页面过多,需要构建大量重复的标题栏布局,浪费开发时间且不利于后期维护。本项目总结了几种常用的使用场景,将标题栏封装成控件,Java代码实现,对当前主流的沉浸式提供了支持,供有需要的同学使用...

    Android中自定义标题栏样式的两种方法

    原装的Android标题栏配色比较单调,就是黑色的一坨,现在假设你的软件需要独自添加标题栏,这样不仅美观而且可以将进度条等加进去,如何实现: 方法一、在你的那张Activity中onCreate方法中加上下面代码: ...

    Android自定义简单的顶部标题栏

    本文实例为大家分享了Android实现简单顶部标题栏的具体代码,供大家...1.创建一个布局文件,命名,layout_titlebar,来部署我们的标题栏样式,可以自定义更改,图片文件可暂时用自己的替代 &lt;?xml version=1.0 encoding=u

    CustomTitleBar:一个简单的自定义标题栏

    一个简单的自定义标题栏 在布局文件中的应用: &lt;aa.customtitlebar.ui.widget.CustomTitleBar android:id="@+id/id_ctb_main" android:layout_width="match_parent" android:layout_height="50dp" android:...

    Android编程自定义title bar(标题栏)示例

    主要介绍了Android编程自定义title bar(标题栏)的方法,结合实例形式分析了Android针对标题栏的设置与页面布局操作相关技巧,需要的朋友可以参考下

    Android 组合控件实现布局的复用的方法

    看到很多项目会有实现自己的标题栏的做法,通常的界面是左边按钮或文字,加上中间的标题和右边的按钮或文字组成的。比较好的一种做法是使用include标签,复用同一个xml文件来实现布局的复用。但是这种方法是通过代码...

    ActionBarEx:高拓展高自定义性ActionBar,完美替代Android系统默认

    支持自定义标题栏布局,支持XML中直接以子布局编写 支持自定义前景布局,如显示Loading效果 支持自定义背景布局,如图片等 支持自定义底部分割线,可以投影效果显示在外部 支持自适应状态栏暗亮色图标模式,可实时...

    Android开发资料合集-World版!

    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、简单的...

    Android 开发技巧

    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、简单的...

Global site tag (gtag.js) - Google Analytics