先看看效果图吧,个人觉得图标丑了点,不过还行,自己用PS做的

下面是全部代码和流程,一定要按流程顺序来,不然错误!

1.tabhost.xml

  1. <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:id="@android:id/tabhost"
  4. android:layout_width="fill_parent"
  5. android:layout_height="wrap_content" >
  6. <RelativeLayout
  7. android:id="@+id/relativelayout"
  8. android:layout_width="fill_parent"
  9. android:layout_height="fill_parent" >
  10. <FrameLayout
  11. android:id="@android:id/tabcontent"
  12. android:layout_width="fill_parent"
  13. android:layout_height="wrap_content" >
  14. <LinearLayout
  15. android:id="@+id/tab1"
  16. android:layout_width="fill_parent"
  17. android:layout_height="wrap_content"
  18. android:orientation="vertical" >
  19. </LinearLayout>
  20. <LinearLayout
  21. android:id="@+id/tab2"
  22. android:layout_width="fill_parent"
  23. android:layout_height="wrap_content"
  24. android:orientation="vertical" >
  25. </LinearLayout>
  26. <LinearLayout
  27. android:id="@+id/tab3"
  28. android:layout_width="fill_parent"
  29. android:layout_height="wrap_content"
  30. android:orientation="vertical" >
  31. </LinearLayout>
  32. <LinearLayout
  33. android:id="@+id/tab4"
  34. android:layout_width="fill_parent"
  35. android:layout_height="wrap_content"
  36. android:orientation="vertical" >
  37. </LinearLayout>
  38. <LinearLayout
  39. android:id="@+id/tab5"
  40. android:layout_width="fill_parent"
  41. android:layout_height="wrap_content"
  42. android:orientation="vertical" >
  43. </LinearLayout>
  44. </FrameLayout>
  45. <TabWidget
  46. android:id="@android:id/tabs"
  47. android:layout_width="fill_parent"
  48. android:layout_height="wrap_content"
  49. android:layout_alignParentBottom="true"
  50. android:background="@drawable/tabwidget_bj" >
  51. </TabWidget>
  52. </RelativeLayout>
  53. </TabHost>

2.tab_item_view.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:orientation="vertical" >
  6. <ImageView
  7. android:id="@+id/imageview"
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. android:layout_gravity="center_horizontal|top"
  11. android:padding="3dp" />
  12. <TextView
  13. android:id="@+id/textview"
  14. android:layout_width="wrap_content"
  15. android:layout_height="wrap_content"
  16. android:layout_gravity="center_horizontal|bottom"
  17. android:textColor="#fff"
  18. android:textSize="13sp"
  19. style="bold"/>
  20. </LinearLayout>

3.样式选择器selector:tab_item_style.xml,新建文件夹drawable,然后将该xml文件放进去

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  3. <item android:drawable="@drawable/unpressed_bj" android:state_selected="false"/>
  4. <item android:drawable="@drawable/pressed_bj" android:state_selected="true"/>
  5. </selector>

4.java代码实现:MyTabHost.java

    1. package com.example.androidtabhost4;
    2. import android.os.Bundle;
    3. import android.app.Activity;
    4. import android.app.TabActivity;
    5. import android.content.Intent;
    6. import android.view.LayoutInflater;
    7. import android.view.Menu;
    8. import android.view.View;
    9. import android.widget.ImageView;
    10. import android.widget.TabHost;
    11. import android.widget.TextView;
    12. import android.widget.TabHost.TabSpec;
    13. public class MyTabHost extends TabActivity {
    14. private TabHost tabHost;
    15. private LayoutInflater layoutInflater;
    16. String[] mTitle = new String[] { "首页", "留言", "评论", "收藏", "更多" };
    17. int[] mIcon = new int[] { R.drawable.home, R.drawable.saying,
    18. R.drawable.zan, R.drawable.collect, R.drawable.more };
    19. int[] mTab = new int[] { R.id.tab1, R.id.tab2, R.id.tab3, R.id.tab4,
    20. R.id.tab5 };
    21. @Override
    22. protected void onCreate(Bundle savedInstanceState) {
    23. super.onCreate(savedInstanceState);
    24. setContentView(R.layout.tabhost);
    25. init();
    26. }
    27. public View getTabItemView(int i) {
    28. // TODO Auto-generated method stub
    29. View view = layoutInflater.inflate(R.layout.tab_item_view, null);
    30. ImageView imageView = (ImageView) view.findViewById(R.id.imageview);
    31. imageView.setImageResource(mIcon[i]);
    32. TextView textView = (TextView) view.findViewById(R.id.textview);
    33. textView.setText(mTitle[i]);
    34. return view;
    35. }
    36. public void init() {
    37. // TODO Auto-generated method stub
    38. tabHost = getTabHost();
    39. layoutInflater = LayoutInflater.from(this);
    40. for (int i = 0; i < mTitle.length; i++) {
    41. TabSpec tabSpec = tabHost.newTabSpec(mTitle[i])
    42. .setIndicator(getTabItemView(i)).setContent(mTab[i]);
    43. tabHost.addTab(tabSpec);
    44. tabHost.getTabWidget().getChildAt(i)
    45. .setBackgroundResource(R.drawable.tab_item_style);
    46. tabHost.setup();
    47. }
    48. }
    49. }

android自定义TabWidget样式的更多相关文章

  1. Android: 自定义Tab样式,一种简单的方式。

    之前看到过论坛里已经有人发过自定义Tab样式的帖子,感觉有些复杂了,这里分享个简单的方法. 1.制作4个9patch的tab样式,可参考android默认的资源 tab_unselected.9.pn ...

  2. Android 自定义title样式

    requestWindowFeature(featrueId),它的功能是启用窗体的扩展特性.参数是Window类中定义的常量.一.枚举常量1.DEFAULT_FEATURES:系统默认状态,一般不需 ...

  3. Android自定义ProgressBar样式

    我们使用的进度条多种多样,下面有几种自定义的进度条的样式,下面介绍几个. 进度条的有基本的四种样式: 默认风格的进度条: android:progressBarStyle 水平长型进度条: andro ...

  4. android 自定义progressbar 样式

    在res下创建drawable文件夹,新建文件drawable/progressbar_color.xml <layer-list xmlns:android="http://sche ...

  5. Android 自定义CheckBox 样式

    新建Android XML文件,类型选Drawable,根结点选selector,在这定义具体的样式. <?xml version="1.0" encoding=" ...

  6. android自定义TabWidget

    在做项目的时候,需要用到这个选项卡,刚开始看了系统的tabwidget,囧了,底边有黑线不说,还不美观,扒了好多的网页发现前辈做的能够满足自己的需求,将代码修改了下,就能用喽,伟人说过,站在前辈的肩膀 ...

  7. 转:android 自定义RadioButton样式

    http://gundumw100.iteye.com/blog/1146527  上面这种3选1的效果如何做呢?用代码写? 其实有更简单的办法,忘了RadioButton有什么特性了吗? 我就用Ra ...

  8. Android 自定义CheckBox样式

    1.首先在drawable文件夹中添加drawable文件checkbox_style.xml. <selector xmlns:android="http://schemas.and ...

  9. Android 自定义光标样式

    今天自定义光标,自己切图,不过怎么切都是很宽.不是一个很细的条.我用ps花了一个像素的直线,放上去还是不行.后来在网上找到方法,那就是用shape.不得不说,shape真的是太吊了. 给EditTex ...

随机推荐

  1. MFC类目录及头文件(转)

    类 描述 头文件 CAnimateCtrl 自动化通用控件 afxcmn.h CArchive afx.h CArchiveException afx.h CArray afxtempl.h CAsy ...

  2. 数往知来 三层架构 <十四>

    三层架构_1 一.三层 就是把程序的各个部分都分离,尽量的底耦合,做到分工明确.责任明确 第一层:Dal   数据访问层 第二层 :Bll  业务逻辑判断层 第三层: UI   界面显示层 比如说数据 ...

  3. Eclipse安装插件的方式

    Eclipse有两种安装插件的方式,分为在线安装和手动安装,因为受到网络环境限制,推荐采用手动安装的方式,下面我们先来了解一下Eclipse手动安装插件的步骤. Eclipse手动安装插件: 第一种: ...

  4. 笔记:修改centos的IP地址相关配置

    最近碰到不少认识的人问相关问题 索性做个笔记 图个方便 修改eth0的网卡配置vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0BOOTPR ...

  5. 王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第十一讲Hadoop图文训练课程:MapReduce的原理机制和流程图剖析

    这一讲我们主要剖析MapReduce的原理机制和流程. “云计算分布式大数据Hadoop实战高手之路”之完整发布目录 云计算分布式大数据实战技术Hadoop交流群:312494188,每天都会在群中发 ...

  6. Hadoop MapReduce概念学习系列之map并发任务数和reduce并发任务数的原理和代码实现(十八)

    首先,来说的是,reduce并发任务数,默认是1. 即,在jps后,出现一个yarnchild.之后又消失. 这里,我控制reduce并发任务数6 有多少个reduce的并发任务数可以控制,但有多少个 ...

  7. 动态生成xml文件

    使用xmlParser动态生成xml,输入的字符编码是gbk,结果怎么生成都不行,后来把输入转成utf8之后, 再生成就ok了

  8. AutoCAD.NET关于Hatch填充

    使用Hatch时尤其要注意其参数设置顺序,顺序不对的话,填充出来的效果可能和想象中的不一样,一般来说大多数的属性参数设置都要放在SetHatchPattern方法之前,比如进行“用户定义”填充时: h ...

  9. linux which 查看可执行文件的位置

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:        which  查看可执行文件的位置.       whereis 查看文件的位置.         ...

  10. Gym 101064 D Black Hills golden jewels (二分)

    题目链接:http://codeforces.com/gym/101064/problem/D 问你两个数组合相加的第k大数是多少. 先sort数组,二分答案,然后判断其正确性(判断过程是枚举每个数然 ...