修改TabHost标签的字体样式

直接上代码:

package com.melon;

import android.app.TabActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.widget.FrameLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.TabHost;
import android.widget.TextView;

@SuppressWarnings("deprecation")
public class MyTab2 extends TabActivity {  
    private TabHost tabHost;  
      
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        tabHost = getTabHost();  
          
        createTabSpec1();  
        createTabSpec2();  
        createTabSpec3();  
          
        tabHost.setCurrentTab(1);
        setContentView(tabHost);  
    }  
      
    private void createTabSpec1() {
    	//加载布局
    	LayoutInflater.from(this).inflate(R.layout.tab1, tabHost.getTabContentView());  
    	TabHost.TabSpec tabSpec_map = tabHost.newTabSpec("tab1");  
    	tabSpec_map.setIndicator("计划...", null);  
    	tabSpec_map.setContent(R.id.ll_tab1_root);
    	tabHost.addTab(tabSpec_map);  
    }  
    private void createTabSpec2() {  
    	LayoutInflater.from(this).inflate(R.layout.tab2, tabHost.getTabContentView());  
          
        FrameLayout frameLayout = (FrameLayout) findViewById(R.id.fl_tab2_root);  
        // MapView: 画了一张图片上去  
        MapView mv = new MapView(this);  
        frameLayout.addView(mv);  
          
        TabHost.TabSpec tabSpec_map = tabHost.newTabSpec("tab2");  
        tabSpec_map.setIndicator("计划中...", null);  
        tabSpec_map.setContent(R.id.fl_tab2_root); 
        tabHost.addTab(tabSpec_map);  
        
        // 修改标签字体样式--------拿到标签的控件,就能操作了...
        TextView tv = (TextView) tabHost.getTabWidget().getChildAt(1).findViewById(android.R.id.title);
        tv.setTextColor(Color.GREEN);
        tv.setGravity(Gravity.CENTER);
        tv.setTextSize(30);
        LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
		tv.setLayoutParams(params );
    }  
    private void createTabSpec3() {  
    	LayoutInflater.from(this).inflate(R.layout.tab3, tabHost.getTabContentView());  
          
        TabHost.TabSpec tabSpec_hs = tabHost.newTabSpec("tab3");  
        tabSpec_hs.setIndicator("已完成...");  
        tabSpec_hs.setContent(R.id.fl_tab3_root); // 绑定一个新的Layout  
        tabHost.addTab(tabSpec_hs);  
         
        /* 
         * 这个绑定View的操作必须要重新使用一个新方法来完成,因为Tab的生成是在onCreate()中完成的,onCreate()只被调用一次, 
         * 但是数据更新操作是需要反复进行的,如果反复调用createTabSpec_hs()则会生成多个tab页,这是我们不希望的,所以单独把 
         * updata分离出来,数据更新时单独调用此方法就可以了。 
         */  
        updateTabSpec3();  
    }  
    
    /**
     * 更新标签内容
     */
    private void updateTabSpec3() {  
        TextView tv = (TextView) findViewById(R.id.tv_tab3_content);  
        tv.setText("This is tab3");  
    }  
}  


 

效果:


你可能感兴趣的:(修改TabHost标签的字体样式)