TAB放置界面底部

package  com.TabTest2;
import  java.lang.reflect.Field;
import  android.app.Activity;
import  android.os.Build;
import  android.R;
import  android.os.Bundle;
import  android.view.LayoutInflater;
import  android.view.View;
import  android.widget.TabHost;
import  android.widget.TabWidget;
import  android.widget.TextView;
import  android.widget.TabHost.OnTabChangeListener;

public   class  TabTest2  extends  Activity {
    
public   void  onCreate(Bundle icicle) {   
        
super .onCreate(icicle);   
        setContentView(com.TabTest2.R.layout.main);   
        
final  TabHost tabs = (TabHost)findViewById(com.TabTest2.R.id.tabhost);   
        
final  TabWidget tabWidget = (TabWidget) findViewById(R.id.tabs);
        
int  width  = 45 ;
        
int  height  = 48 ;
        Field mBottomLeftStrip;
        Field mBottomRightStrip;
        tabs.setup();   
           
          
           
        tabs.addTab(tabs.newTabSpec(
" first tab " )
                .setIndicator(
" news " ,getResources().getDrawable(com.TabTest2.R.drawable.c))
                .setContent(com.TabTest2.R.id.tab1));
        tabs.addTab(tabs.newTabSpec(
" second tab " )
                .setIndicator(
" help " ,getResources().getDrawable(com.TabTest2.R.drawable.e))
                .setContent(com.TabTest2.R.id.tab2));
        tabs.addTab(tabs.newTabSpec(
" third tab " )
                .setIndicator(
" setting " ,getResources().getDrawable(com.TabTest2.R.drawable.efg))
                .setContent(com.TabTest2.R.id.tab2));
           
        tabs.setCurrentTab(
0 );  
        
        
        
for  ( int  i  = 0 ; i  < tabWidget.getChildCount(); i ++ ) {
            
/**
             * 设置高度、宽度,不过宽度由于设置为fill_parent,在此对它没效果
             
*/
            tabWidget.getChildAt(i).getLayoutParams().height 
=  height;
            tabWidget.getChildAt(i).getLayoutParams().width 
=  width;


         
/**
          * 设置tab中标题文字的颜色,不然默认为黑色
          
*/
          
final  TextView tv  =  (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);

          tv.setTextColor(
this .getResources().getColorStateList(android.R.color.white));




            
/**
             * 此方法是为了去掉系统默认的色白的底角
             *
             * 在 TabWidget中mBottomLeftStrip、mBottomRightStrip
             * 都是私有变量,但是我们可以通过反射来获取
             *
             * 由于还不知道Android 2.2的接口是怎么样的,现在先加个判断好一些
             
*/
      
if  (Float.valueOf(Build.VERSION.RELEASE)  <=   2.1 ) {
               
try  {
                  mBottomLeftStrip 
=  tabWidget.getClass().getDeclaredField ( " mBottomLeftStrip " );
                  mBottomRightStrip 
=  tabWidget.getClass().getDeclaredField ( " mBottomRightStrip " );
                  
if ( ! mBottomLeftStrip.isAccessible()) {
                    mBottomLeftStrip.setAccessible(
true );
                  }
                  
if ( ! mBottomRightStrip.isAccessible()){
                    mBottomRightStrip.setAccessible(
true );
                  }
                 mBottomLeftStrip.set(tabWidget, getResources().getDrawable (com.TabTest2.R.drawable.linee));
                 mBottomRightStrip.set(tabWidget, getResources().getDrawable (com.TabTest2.R.drawable.linee));

               } 
catch  (Exception e) {
                 e.printStackTrace();
               }
         } 
else  {
        
         }
        View vvv 
=  tabWidget.getChildAt(i);
  
if (tabs.getCurrentTab() == i){
          vvv.setBackgroundDrawable(getResources().getDrawable(com.TabTest2.R.drawable.shine));
  }
  
else  {
          vvv.setBackgroundDrawable(getResources().getDrawable(com.TabTest2.R.drawable.seven));
  }

        }
        
        
/**
         * 当点击tab选项卡的时候,更改当前的背景
         
*/
        tabs.setOnTabChangedListener(
new  OnTabChangeListener(){
   @Override
   
public   void  onTabChanged(String tabId) {
    
//  TODO Auto-generated method stub
     for  ( int  i  = 0 ; i  <  tabWidget.getChildCount(); i ++ ) {
     View vvv 
=  tabWidget.getChildAt(i);
     
if (tabs.getCurrentTab() == i){
             vvv.setBackgroundDrawable(getResources().getDrawable(com.TabTest2.R.drawable.shine));
     }
     
else  {
             vvv.setBackgroundDrawable(getResources().getDrawable(com.TabTest2.R.drawable.seven));
     }
    }
   }});

        
    }   


}

 

 

<? xml version="1.0" encoding="utf-8" ?>   
< LinearLayout  
    
xmlns:android ="http://schemas.android.com/apk/res/android"   
    android:orientation
="vertical"   
    android:layout_width
="fill_parent"   
    android:layout_height
="fill_parent" >   
    
< TabHost  
        
android:id ="@+id/tabhost"   
        android:layout_width
="fill_parent"   
        android:layout_height
="fill_parent" >   
        
< FrameLayout  
            
android:id ="@android:id/tabcontent"   
            android:layout_width
="fill_parent"   
            android:layout_height
="fill_parent"   
            android:paddingBottom
="62px" >   
            
< AnalogClock  
                
android:id ="@+id/tab1"   
                android:layout_width
="fill_parent"   
                android:layout_height
="fill_parent"   
                android:layout_centerHorizontal
="true"   />   
            
< Button  
                
android:id ="@+id/tab2"   
                android:layout_width
="fill_parent"   
                android:layout_height
="fill_parent"   
                android:text
="A semi-random button"   />   
        
</ FrameLayout >   
        
< RelativeLayout  
            
android:layout_width ="fill_parent"   
            android:layout_height
="fill_parent" >   
            
< TabWidget  
                
android:id ="@android:id/tabs"   
                android:layout_alignParentBottom
="true"   
                android:layout_width
="fill_parent"   
                android:layout_height
="60px"   />   
        
</ RelativeLayout >   
    
</ TabHost >   
</ LinearLayout >   

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值