Android自定義實現微信標題欄


 

Android自定義實現微信標題欄

    前言:在android的開發中有時我們需要更個性化的標題欄,而不僅僅是系統預定義的圖標加軟件名,同時有時候我們需要在標題欄中實現更多功能,如添加按鈕響應用戶點擊。這就要求我們實現自定義標題欄。下面以微信的標題欄為例:

微信界面的標題欄:

   step 1:寫標題欄布局文件

    新建一個布局文件titleBar.xml文件:

 

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:background="#434343"
 6     >
 7     
 8     <TextView
 9         android:id="@+id/barText"
10         android:layout_alignParentLeft="true"
11         android:layout_width="wrap_content"
12         android:layout_height="wrap_content"
13         android:textColor="#FFFFFF"
14         android:layout_centerVertical="true"
15         
16         android:textSize="20sp"
17         android:layout_marginLeft="5dp"
18         android:text="微信(4)"
19         />
20 
21     <ImageView
22         android:id="@+id/barAdd"
23         android:layout_width="wrap_content"
24         android:layout_height="wrap_content"
25         android:src="@android:drawable/ic_menu_add"
26         android:layout_alignParentRight="true"
27         android:layout_marginRight="10dp"
28         android:layout_centerVertical="true"
29         />
30     
31      <ImageView
32         android:id="@+id/barSearch"
33         android:layout_width="wrap_content"
34         android:layout_height="wrap_content"
35         android:src="@android:drawable/ic_menu_search"
36         android:layout_toLeftOf="@+id/barAdd"
37         android:layout_marginRight="20dp"
38         android:layout_centerVertical="true"
39         />
40 </RelativeLayout>

  step2:在源文件OnCreat中添加:設置titleBar.xml為標題欄布局

1     public void onCreate(Bundle savedInstanceState) {
2         super.onCreate(savedInstanceState);
3         requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
4         setContentView(R.layout.main);
5         //設置標題布局為titlebar
6         getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);
7 }

step3:定義標題欄的風格

在drawable新建color.xml:

1 <?xml version="1.0" encoding="utf-8"?>
2 <color xmlns:android="http://schemas.android.com/apk/res/android" >
3            <item name="android:color">#434343</item>  //設置背景色
4 </color>

在values新建titleStyle.xml:

1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3     <style name="MyStyle" parent="android:Theme.Light">
4           <item name="android:windowTitleSize">50dp</item>//設置寬度
5           <item name="android:windowTitleBackgroundStyle">@drawable/color</item> //設置背景風格,否則可能有邊框
6     </style>
7 </resources>

在AndroidManifest.xml中修改配置:

在application中添加:android:theme="@style/titleStyle"

step4:添加點擊處理:

在修改源文件為:

 1 public class WeixinActivity extends Activity implements OnClickListener{
 2     /** Called when the activity is first created. */
 3     public ImageView addBtn;
 4     public ImageView searchBtn;
 5     
 6     @Override
 7     public void onCreate(Bundle savedInstanceState) {
 8         super.onCreate(savedInstanceState);
 9         requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
10         setContentView(R.layout.main);
11         //設置標題布局為titlebar
12         getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);
13         
14         addBtn=(ImageView)this.findViewById(R.id.barAdd);
15         searchBtn=(ImageView)this.findViewById(R.id.barSearch);
16         
17         addBtn.setOnClickListener(this);
18         searchBtn.setOnClickListener(this);
19 
20     }
21 
22     @Override
23     public void onClick(View v) {
24         // TODO Auto-generated method stub
25         switch(v.getId()){
26         case R.id.barAdd:Toast.makeText(WeixinActivity.this, "你點擊了添加", Toast.LENGTH_SHORT).show();break;
27         case R.id.barSearch:Toast.makeText(WeixinActivity.this, "你點擊了搜索", Toast.LENGTH_SHORT).show();break;
28         default:break;
29         }
30     }
31 }

step5:運行

 

 ok

這樣就完成了,圖片我用的系統的圖片,不太美觀,大家可以自己修改

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM