源代码下载地址-------------------http://download.csdn.net/detail/husterma/8726605
Step1:搭架子
tab_ayout.xml-----------容器
<?xml version="1.0" encoding="utf-8"?>
<TabHost
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="0.0dip"
android:layout_weight="1.0" />
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="47dp"
android:layout_weight="0.02"
android:background="@drawable/bacground"
android:padding="2dip" />
</LinearLayout>
</TabHost>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center">
<ImageView
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp"
android:focusable="false">
</ImageView>
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/tab_item_text_style">
</TextView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="48dp"
android:background="@drawable/title_bac"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:src="@drawable/tab_icon1" />
<TextView
android:layout_width="8dp"
android:layout_height="wrap_content" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/app_name"
android:textColor="#FFFFFF"
android:textSize="14sp" />
<TextView
android:layout_width="50dp"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/news"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:src="@drawable/report" />
</LinearLayout>
Step2:
主要代码---------生成view控制Activity跳转
package com.hustma.tablehost.activity;
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
import android.widget.TextView;
import com.hustma.tablehost.utils.ConstantValue.ConValue;
public class TabHostActivity extends TabActivity{
private TabHost mtabHost;
private LayoutInflater mLayoutInflater;
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tablayout);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
R.layout.title_bus);
init();
}
private void init()
{
mtabHost = getTabHost();
mLayoutInflater = LayoutInflater.from(this);
int count = ConValue.mTabClassArray.length;
for(int i = 0; i < count; i++)
{
TabSpec tabSpec = mtabHost.newTabSpec(ConValue.mTextviewArray[i]).
setIndicator(getTabItemView(i)).
setContent(getTabItemIntent(i));
mtabHost.addTab(tabSpec);
mtabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.selector_tab_background);
}
}
private View getTabItemView(int index)
{
View view = mLayoutInflater.inflate(R.layout.tab_item_view, null);
ImageView imageView = (ImageView) view.findViewById(R.id.imageview);
if (imageView != null)
{
imageView.setImageResource(ConValue.mImageViewArray[index]);
}
TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(ConValue.mTextviewArray[index]);
return view;
}
private Intent getTabItemIntent(int index)
{
Intent intent = new Intent(this, ConValue.mTabClassArray[index]);
return intent;
}
}
Step3:
其他必要文件,主要是定义效果或者格式
select_tab_bac.xml-------------定义选项卡选择前后的变化
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/tab_item_p"/>
<item
android:state_selected="true"
android:drawable="@drawable/tab_item_d"/>
</selector>
style.xml-------------定义选title的框架格式
<style name="CustomizedWindowTitleBackground">
<item name="android:background">#33A1C9</item>
</style>
<style name="titlebarstyle" parent="android:Theme">
<item name="android:windowTitleSize">48dp</item>
<item name="android:windowTitleBackgroundStyle">@style/CustomizedWindowTitleBackground</item>
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
Manifest.xml-----------定义title格式。声明activity
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar" >
<activity
android:name=".TabHostActivity"
android:label="@string/app_name"
android:theme="@style/titlebarstyle">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Activity1"
android:label="@string/title_activity_activity1" >
</activity>
......
Step4:
效果图