android中如何自定義主題,如下圖:
如何将主題進行改變呢?在android中他為我們提供了Window中setFeatureInt,可以讓我們自定義各種各樣的桌面樣式。
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.custom_title);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_1);
requestWindwoFeature是判斷該特征在目前是否存在(顯示),如果改特征沒有顯示就讓他顯示,setFeatureInt方法為指定的視窗特征設定值(該界面特征的布局)。關于更多的Window類的介紹可以參考網站:http://www.cnblogs.com/GnagWang/archive/2011/03/31/2001067.html
代碼:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/**
* 自定義主題
*/
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
/**
* id為left_text.right_text為自定義布局檔案内容
*/
final TextView leftText = (TextView) findViewById(R.id.left_text);
final TextView rightText = (TextView) findViewById(R.id.right_text);
final EditText leftTextEdit = (EditText) findViewById(R.id.left_text_edit);
final EditText rightTextEdit = (EditText) findViewById(R.id.right_text_edit);
* 設定button監聽事件,一邊随時改變左右主題的内容
Button leftButton = (Button) findViewById(R.id.left_text_button);
Button rightButton = (Button) findViewById(R.id.right_text_button);
leftButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
leftText.setText(leftTextEdit.getText());
}
});
rightButton.setOnClickListener(new OnClickListener() {
rightText.setText(rightTextEdit.getText());
custom_title_1.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen"
android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="vertical">
<TextView android:id="@+id/left_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="@string/custom_title_left" />
<TextView android:id="@+id/right_text"
android:layout_alignParentRight="true"
android:text="@string/custom_title_right" />
</RelativeLayout>
custom_title.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/screen"
android:layout_width="match_parent"
android:layout_height="match_parent"
<LinearLayout android:layout_width="match_parent"
android:baselineAligned="false">
<EditText android:id="@+id/left_text_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxEms="10"
android:minEms="10"
android:layout_gravity="center_vertical"
android:text="@string/custom_title_left" />
<Button android:id="@+id/left_text_button"
android:layout_width="wrap_content"
android:text="@string/custom_title_left_button"/>
</LinearLayout>
<EditText android:id="@+id/right_text_edit"
android:text="@string/custom_title_right" />
<Button android:id="@+id/right_text_button"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="@string/custom_title_right_button"/>
</LinearLayout>
顯示結果: