Android - 自定义标题栏(TitleBar)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    final boolean customTitle= requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.main);

    if ( customTitle ) {
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, Set your layout for title here and mention your button in this layout);
    }

    final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
    if ( myTitleText != null ) {
        myTitleText.setText("NEW TITLE");
        myTitleText.setBackgroundColor(Color.BLUE);
    }
}
上述代码只能自定义标题栏,但不能改变标题栏的大小、自定义标题栏属性如下:
原理是这样的. 直接像上述代码那样添加title仅仅是把一个子界面添加到原有的title上的, 并没有改变原来的属性, 比如 标题栏大小, 标题栏背景. 这些需要在theme 主题里面定义. 
因此先定义一个style, 若修改背景请修改android:windowTitleBackgroundStyle
若修改标题栏高度,请修改android:windowTitleSize
例子:
<?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"  就可以了

你可能感兴趣的:(android,layout,null,button,encoding)