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>  

 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/oceanZhao/archive/2011/05/10/6409015.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值