Android--(13)--Android自定義實現actionbar實現微信標題欄
阿新 • • 發佈:2019-02-03
昨天看了下actionbar的使用,今天來實現自定義的標題欄實現
在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為標題欄佈局
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
//設定標題佈局為titlebar
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);
}
step3:定義標題欄的風格
在values新建titleStyle.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyStyle" parent="android:Theme.Light">
<item name="android:windowTitleSize">50dp</item><!-- //設定寬度 -->
<item name="android:windowTitleBackgroundStyle">@style/titleColor</item>//設定背景風格,否則可能有邊框
</style>
<style name="titleColor">
<item name="android:color">#434343</item>//設定背景色
</style>
</resources>
在AndroidManifest.xml中修改配置:
在application中新增:
android:theme="@style/MyStyle"
step4:新增點選處理:
在修改原始檔為:
public class WeixinActivity extends Activity implements OnClickListener{
/** Called when the activity is first created. */
public ImageView addBtn;
public ImageView searchBtn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
//設定標題佈局為titlebar
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);
addBtn=(ImageView)this.findViewById(R.id.barAdd);
searchBtn=(ImageView)this.findViewById(R.id.barSearch);
addBtn.setOnClickListener(this);
searchBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.barAdd:Toast.makeText(WeixinActivity.this, "你點選了新增", Toast.LENGTH_SHORT).show();break;
case R.id.barSearch:Toast.makeText(WeixinActivity.this, "你點選了搜尋", Toast.LENGTH_SHORT).show();break;
default:break;
}
}
}
希望對初學者有用,自做筆記使用;