android 修改窗体标题的字体式样和…

来源:互联网 发布:手机怎么修改淘宝名 编辑:程序博客网 时间:2024/05/06 02:50

自定义一个layout,然后通过requestWindowFeature和getWindow().setFeatureInt方法调用,

    但是存在填充不满的问题,而且比较麻烦。

 

但是,我只是想改变标题栏字体的大小、颜色,并设置一个背景图片,并不想定义一个layout的xml文件。

那么,android有没有提供解决上述问题的方法呢,答案是肯定的,一定可以。

默认的标题栏式样太难看了,灰不啦吉的。

 

后来参考了一篇洋人博友的文章,最终有所收获。

http://zaman91.wordpress.com/2010/03/18/android-how-to-customize-default-themes-and-styles/

 

具体的操作步骤是:

1、在res/values添加styles.xml文件。

    .在eclipse中,选择File -> New ->Other菜单

    .在弹出窗口中,选择Android/Android XML File,点击 Next

    .在添加XML窗口中,输入文件名"styles.xml",选中Values,

      输入文件夹路径"/res/values"

    .然后点击 Finish

 

2、在res/values添加themes.xml文件。

   操作方法同步骤1,只是文件名输入"themes.xml"

 

3、styles.xml文件的代码

   

[xhtml] viewplaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources xmlns:adnroid="http://schemas.android.com/apk/res/android">  
  3.   
  4. <style name="CustomWindowTitleBackground" parent="android:WindowTitleBackground">  
  5.   <item name="android:background">@drawable/bg</item>  
  6. </style>  
  7.   
  8. <style name="CustomWindowTitle" parent="android:WindowTitle">  
  9.   <item name="android:textAppearance">@style/CustomWindowTitleText</item>  
  10. </style>  
  11.   
  12. <style name="CustomWindowTitleText" parent="android:TextAppearance.WindowTitle">  
  13.   <item name="android:textColor">#00f</item>  
  14.   <item name="android:textSize">14sp</item>  
  15.   <item name="android:textStyle">bold</item>  
  16. </style>  
  17.   
  18. </resources>  

 

4、themes.xml文件的代码

 

[xhtml] viewplaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources xmlns:adnroid="http://schemas.android.com/apk/res/android">  
  3.   
  4. <style name="titleTheme" parent="android:Theme" >  
  5.   <!-- <item name="android:windowTitleSize">30dp</item>  -->  
  6.   <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>  
  7.   <item name="android:windowTitleStyle">@style/CustomWindowTitle</item>  
  8. </style>  
  9.   
  10. </resources>  

 

5、修改工程的Manifest.xml文件

    .在Activity中加入android:theme="@style/titleTheme"即可

 

[xhtml] viewplaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.       package="com.android.customtitle"  
  4.       android:versionCode="1"  
  5.       android:versionName="1.0">  
  6.     <application android:icon="@drawable/icon" android:label="@string/app_name">  
  7.         <activity android:name=".CustomTitle"  
  8.                   android:label="@string/app_name"  
  9.                   android:theme="@style/titleTheme">  
  10.             <intent-filter>  
  11.                 <action android:name="android.intent.action.MAIN" />  
  12.                 <category android:name="android.intent.category.LAUNCHER" />  
  13.             </intent-filter>  
  14.         </activity>  
  15.   
  16.     </application>  
  17.     <uses-sdk android:minSdkVersion="9" />  
  18.   
  19. </manifest>   

 

6、效果图

android自定义标题栏

 

说明:

   .关于@drawable/bg,它是title的背景图. bg.png格式。

     直接在res目录下创建修文件夹drawable及文件bg.png即可。

   .个人感觉,android的所有style和theme都是可以继承并且修改的。

 

关于style和theme的详细,可以查看一下的参考资料。

http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=core/res/res/values/styles.xml

http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=core/res/res/values/themes.xml

0 0
原创粉丝点击