最近在做一个平板电脑点餐的系统,要用到TabHost,不太好写,写好了分享给大家,先上图片,默认效果:

切换后效果

先是layout文件夹中的布局文件,代码如下:

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:background="@drawable/category_bg"
        android:padding="0dp" >

<TabWidget
            android:id="@android:id/tabs"
            android:layout_width="wrap_content"
            android:layout_height="40dp"/>

<FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="@drawable/context_bg"
            android:padding="0dp" />
    </LinearLayout>

</TabHost>

然后是java文件,

package com.dzdc.activity;import android.app.TabActivity;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TextView;import com.dzdc.R;@SuppressWarnings("deprecation")
public class IndexActivity extends TabActivity {private String[] tabMenu = { "热菜", "冷菜", "海鲜", "川菜", "酒饮", "招牌菜" };private Intent intent0, intent1, intent2, intent3, intent4, intent5;private Intent[] intents = { intent0, intent1, intent2, intent3, intent4,intent5 };private TabHost.TabSpec tabSpec0, tabSpec1, tabSpec2, tabSpec3, tabSpec4,tabSpec5;private TabHost.TabSpec[] tabSpecs = { tabSpec0, tabSpec1, tabSpec2,tabSpec3, tabSpec4, tabSpec5 };private TabHost tabHost = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.index);tabHost = getTabHost();for (int i = 0; i < tabMenu.length; i++) {intents[i] = new Intent();intents[i].setClass(this, IndexContentActivity.class);tabSpecs[i] = tabHost.newTabSpec(tabMenu[i]);tabSpecs[i].setIndicator(tabMenu[i]);// 设置文字tabSpecs[i].setContent(intents[i]);// 设置该页的内容tabHost.addTab(tabSpecs[i]);// 将该页的内容添加到Tabhost}tabHost.setCurrentTabByTag(tabMenu[0]); // 设置第一次打开时默认显示的标签,updateTab(tabHost);//初始化Tab的颜色,和字体的颜色tabHost.setOnTabChangedListener(new OnTabChangedListener()); // 选择监听器}class OnTabChangedListener implements OnTabChangeListener {@Overridepublic void onTabChanged(String tabId) {tabHost.setCurrentTabByTag(tabId);System.out.println("tabid " + tabId);System.out.println("curreny after: " + tabHost.getCurrentTabTag());updateTab(tabHost);}}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {System.exit(0);return false;} else if (keyCode == KeyEvent.KEYCODE_MENU&& event.getRepeatCount() == 0) {return true; // 返回true就不会弹出默认的setting菜单}return false;}/*** 更新Tab标签的颜色,和字体的颜色* @param tabHost*/private void updateTab(final TabHost tabHost) {for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {View view = tabHost.getTabWidget().getChildAt(i);TextView tv = (TextView) tabHost.getTabWidget().getChildAt(i).findViewById(android.R.id.title);tv.setTextSize(16);tv.setTypeface(Typeface.SERIF, 2); // 设置字体和风格if (tabHost.getCurrentTab() == i) {//选中view.setBackgroundDrawable(getResources().getDrawable(R.drawable.category_current));//选中后的背景tv.setTextColor(this.getResources().getColorStateList(android.R.color.black));} else {//不选中view.setBackgroundDrawable(getResources().getDrawable(R.drawable.category_bg));//非选择的背景tv.setTextColor(this.getResources().getColorStateList(android.R.color.white));}}}
}

关于Android TabHost切换Tab字体的颜色背景颜色改变相关推荐

  1. android tabhost黑色背景,关于Android TabHost切换Tab字体的颜色背景颜色改变

    最近在做一个平板电脑点餐的系统,要用到TabHost,不太好写,写好了分享给大家,先上图片,默认效果: 切换后效果 先是layout文件夹中的布局文件,代码如下: android:id="@ ...

  2. clion调整字体打下奥_Clion、IEDA、pycharm的一些简单设置步骤(设置中文菜单、输出中文、字体大小、背景颜色主题)...

    Clion.IEDA.pycharm的设置及界面是一模一样的,下面我将按照Clion举例,但是在IEDA和pycharm是同样适用,按照方法设置即可 一.中文界面 clion.ieda.pycharm ...

  3. Pycharm 字体大小及背景颜色的设置

    设置Pycharm 的字体大小及背景颜色 Pycharm设置字体的大小及风格 选择File --> setting --> Editor --> Font,我们可以看到如下图所示界面 ...

  4. python软件设置代码字体的大小_Pycharm4.5设置字体大小以及背景颜色的方法

    Pycharm4.5是一款非常强大的Python代码编辑器,其具备了易于上手.功能强大等特点,深受广大开发人员的青睐,而在使用的过程中,我们常常需要设置字体的大小以及背景颜色等参数,从而能够为用户带来 ...

  5. python3-xlwt-Excel设置表格基础(字体颜色 背景颜色 设置边框 边框颜色 冻结窗口 字体大小 字体高度 字体加粗 下划线 斜体字 单元格对齐方式 自动换行 删除线 超链接 插入公式)

    文章目录 引入xlwt和创建workboos对象 初始化样式和创建设置字体,赋值给style 保存文件 自定义样式 字体颜色 背景颜色 设置边框 边框颜色 冻结窗口 字体大小 字体高度 字体加粗 下划 ...

  6. android自定义主题背景颜色,Android 自定义SeekBar 实现分段显示不同背景颜色的示例代码...

    在最近的开发工作中,要实现一个调色板的进度条,SeekBar要分成10段显示不同颜色,功夫不负有心人,终于实现了这个功能,下面分享给大家 示例图: 1.自定义SeekBar import androi ...

  7. Android --- TabHost 切换时,改变选项卡下字体的状态(大小、加粗、默认被选中第一个)

    上效果图: MiddleFragment.java 代码如下 import android.os.Bundle; import android.view.LayoutInflater; import ...

  8. sublime text3 字体样式_Sublime Text3自定义全部字体大小、字体类型和背景颜色

    一.定义侧栏的背景颜色.字体大小和间距 1.按键:ctrl+shift+p,弹出窗口中输入pro,选择图中的PackageResourceViewer:Open Resource. 2.在新窗口输入t ...

  9. clion调整字体打下奥_Clion、IEDA、pycharm的一些简单设置(输出中文、字体大小、背景颜色主题)...

    Clion.IEDA.pycharm的设置及界面是一模一样的,下面我将按照Clion举例,但是在IEDA和pycharm是同样适用,按照方法设置即可 一.clion最初的设置是不支持中文输出的,如果要 ...

最新文章

  1. github里的默认域_GitMAD 一款扫描Github上的敏感信息和数据泄漏工具
  2. 使用深度学习和树搜索进行从零开始的既快又慢的学习
  3. mysql5.0 Using a password on the command line interface can be insecure.最简单的解决办法
  4. c++ 以模板类作为参数的模板
  5. java 打包apk_Android APK打包流程
  6. 复习java的java.io.File类,深入理解并熟练使用
  7. 程序人生:不知道我讲了什么的回应稿
  8. Selenium+Appium底层原理
  9. 基于SpringBoot实现在线抽奖系统
  10. 苹果7plus元件分布图_苹果iPhone7Plus元件分布图+电路原理图+位置图PDF
  11. vnc远程控制软件中文版,4款好用的vnc远程控制软件中文版
  12. 快手小说怎么引流?门槛太低,是个人就能做
  13. 小白必备!Rust 编程语言入门教程
  14. SAP财务凭证的冲销
  15. 域名(DNS)原理及解析过程详解
  16. [ADS]ADS1.2软件的破解
  17. Anaconda安装详细教程
  18. 利用QT5.9创建并调用DLL(基于Visual Studio 2015)
  19. WMS系统数据分析—库存周转率分析
  20. openlayers 图层刷新问题

热门文章

  1. 编译Linux程序出现“对‘pthread_create’未定义的引用”
  2. 自定义浏览器滚动条样式(兼容chrome和firefox)
  3. python数据挖掘(5.Apriori算法)
  4. The setup files are corrupted. Please obtain a new copy of the program. 报错解决。
  5. 行测(基础篇)之汉语语法与阅读习惯梳理
  6. 学习CentOS7下使用ceph-deploy搭建Ceph
  7. C/C++跨平台的的预编译宏
  8. 海洋中的声速随温度、压强以及盐度变化关系Wilson公式
  9. 电影大全 API接口
  10. CSS3 transition实现超酷图片墙动画效果