自定义Android标题栏TitleBar布局

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 
例子: 

  1. <? xml version=\"1.0\" encoding=\"utf-8\" ?> 
  2. < resources  xmlns:android =\"http://schemas.android.com/apk/res/android\" > 

  3. < style  name =\"CustomWindowTitleBackground\" > 
  4.         < item  name =\"android:background\" > #565656 </ item > 
  5. </ style > 

  6. < style  name =\"test\"  parent =\"android:Theme\" > 
  7.       < item  name =\"android:windowTitleSize\" > 50dp </ item > 
  8.       < item  name =\"android:windowTitleBackgroundStyle\" > @style/CustomWindowTitleBackground </ item > 
  9. </ style > 
  10. </ resources >
复制代码

在程序的android manifest.xml中对应activity中添加属性  android:theme = \"@style/test\"  就可以了 

  1. <? xml version=\"1.0\" encoding=\"utf-8\" ?> 
  2. < manifest  xmlns:android =\"http://schemas.android.com/apk/res/android\" 
  3.       package =\"com.guardian\" 
  4.       android:versionCode =\"1\" 
  5.       android:versionName =\"1.0\" > 
  6.      < application  android:icon =\"@drawable/icon\"  android:label =\"@string/app_name\"   > 
  7.          < activity  android:name =\".Guardian\" 
  8.                   android:label =\"@string/app_name\" 
  9.                   android:theme  = \"@style/test\"   //就在这里 
  10.                    > 
  11.              < intent-filter > 
  12.                  < action  android:name =\"android.intent.action.MAIN\"   /> 
  13.                  < category  android:name =\"android.intent.category.LAUNCHER\"   /> 
  14.              </ intent-filter > 
  15.          </ activity > 
  16.      </ application > 
  17.      < uses-sdk  android:minSdkVersion =\"4\"   /> 
  18. </ manifest >
复制代码

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

原文地址:http://www.cmd100.com/bbs/thread-5269-1-1.html

你可能感兴趣的:(xml,android,application,resources,encoding)