Android 建立標籤式的版面設定 (筆記)
利用TabHost建立標籤式的版面設定,進行不同標籤的切換,顯示不同的背景圖片。效果如下所示:
1、添加6張圖片資源(直接拖入drawable檔案夾),分別為gray.png, white.png, gray2.png, white2.png, gray3.png, white3.png代表的是標籤預設狀態和按下以後的狀態。
2、在 drawable檔案夾中建立一般的XML檔案,picture.xml, picture2.xml, picture3.xml分別填寫以下代碼
picture.xml
picture2.xml
picture3.xml
3、在activity_main.xml中添加控制項,並且在MainActivity.java調用
activity_main.xml
<framelayout android:id="@+id/container" android:layout_height="match_parent" android:layout_width="match_parent" tools:context="com.example.test2.MainActivity" tools:ignore="MergeRootFrame" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> </framelayout>
MainActivity.xml
package com.example.test3;import android.app.Activity;import android.app.ActionBar;import android.app.Fragment;import android.app.TabActivity;import android.content.Intent;import android.content.res.Resources;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.TabHost;import android.widget.TabHost.TabSpec;import android.os.Build;public class MainActivity extends TabActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TabHost tabHost = getTabHost(); LayoutInflater.from(this).inflate(R.layout.activity_main, //載入頁面 tabHost.getTabContentView(), true); tabHost.addTab(tabHost.newTabSpec(tab1) .setIndicator(tab1, getResources().getDrawable(R.drawable.picture)) .setContent(R.id.view1)); tabHost.addTab(tabHost.newTabSpec(tab2) .setIndicator(tab2, getResources().getDrawable(R.drawable.picture2)) .setContent(R.id.view2)); tabHost.addTab(tabHost.newTabSpec(tab3) .setIndicator(tab3, getResources().getDrawable(R.drawable.picture3)) .setContent(R.id.view3)); tabHost.setCurrentTab(1); }}4、測試以後出現這樣的情況:只顯示字不顯示表徵圖,則在AndroidManifest.xml進行以下更改,最終看到表徵圖。