Android自定義TitleBar 自定義標題欄 並進行事件處理

查志強發表於2014-07-11

【原文:http://blog.sina.com.cn/s/blog_62d3ddc00100z5u6.html

Android自定義TitleBar 自定義標題欄 並進行事件處理

安卓自帶的標題欄感覺很是難看,那麼我們可以自定義titlebar
首先建立自定義標題欄xml檔案 放在layout目錄下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="blog.sina.com.cn/ruipheng"
        android:textColor="@android:color/background_dark"
        android:textSize="20dp"
         />


    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="註冊" />

</LinearLayout>

在程式碼中引入


//自定義標題欄
this.requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.test);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
R.layout.title_bar);
我們發現這樣的話,標題欄的高度是原生的,不能滿足我們的需求,於是我們在value目錄下建立styles.xml檔案
程式碼如下
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="custom_window_title_background">
        <item name="android:background">@drawable/skinpic_blue</item>
    </style>
    <style name="custom_title">
        <item name="android:windowTitleSize">50dp</item>
        <item name="android:windowTitleBackgroundStyle">@style/custom_window_title_background</item>
    </style>  
</resources>
這樣自定義titlebar的工作就完成了,那麼怎樣處理titleBar中的事件呢!其實很簡單,和處理本頁面其他的控制元件一樣的.我曾經以為處理上面的空間與自定義Dialog中xml的檔案的方法一樣,實際上我是錯了,根本不需要那樣處理


Button btn = (Button) findViewById(R.id.button1);
final TextView text = (TextView) findViewById(R.id.textView1);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
text.setText("我的新浪部落格");
//System.out.println("我的新浪部落格");

}
});
下面是效果,右邊為點選註冊後

Android自定義TitleBar <wbr>自定義標題欄 <wbr>並進行事件處理Android自定義TitleBar <wbr>自定義標題欄 <wbr>並進行事件處理




轉載請註明出處:http://blog.sina.com.cn/ruipheng

相關文章