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

切换后效果

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

android:id="@android:id/tabhost"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

android:background="@drawable/category_bg"

android:padding="0dp" >

android:id="@android:id/tabs"

android:layout_width="wrap_content"

android:layout_height="40dp"/>

android:id="@android:id/tabcontent"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/context_bg"

android:padding="0dp" />

然后是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;

@Override

protected 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 {

@Override

public void onTabChanged(String tabId) {

tabHost.setCurrentTabByTag(tabId);

System.out.println("tabid " + tabId);

System.out.println("curreny after: " + tabHost.getCurrentTabTag());

updateTab(tabHost);

}

}

@Override

public 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黑色背景,关于Android TabHost切换Tab字体的颜色背景颜色改变相关推荐

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

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

  2. 背景色自动切换html,css3动画之背景颜色的自动切换

    因为不同浏览器内核的不同所以会产生浏览器兼容性问题 背景颜色的变换 div{ width: 200px; height: 200px; background: blue; animation:myfi ...

  3. fxml设置背景_JavaFX – 如何获取Tab,Button等的背景颜色

    问题描述:我无法在JavaFX中获得对象的背景.我不是指形状,而是像Buttons,Tabs等常规节点.我不知道如何访问他们的背景颜色. 我想要的是?我正在开发IDE,我想在选项卡上运行Color动画 ...

  4. android tabhost黑色背景,怎么设置tabhost的背景颜色

    2019-03-08 回答 tabwidget tabwidget = tabhost.gettabwidget(); //获取tabhost的头部 for (int i=0; i      view ...

  5. 关于android MTK相机L版本,切换屏幕比例后,分辨率随之改变,但重新进入相机后原有分辨率不再生效问题...

    BUG详细:比如4:3的时候是200W,切成全屏变400W,重新切回4:3为300W,退出相机后,重新进入又变成200W. 原因分析:这个版本的设计如此,当你点选屏幕比例的时候,程序设计是把这个比例值 ...

  6. Android recyclerView/listview的点击变色、点击换背景颜色

    一言不合就上图 点击变色: 这里没有用到什么高大上的技术点,只是静下心好好想想"面向对象",利用一点小逻辑. 我这里用的是recyclerView控件,在recyclerView的 ...

  7. Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信...

    以下内容为原创,转载请注明:http://www.cnblogs.com/tiantianbyconan/p/3360938.html 如新浪微博下面的标签切换功能,我以前也写过一篇博文(http:/ ...

  8. android tabhost 动画,Android中使用TabHost 与 Fragment 制作页面切换效果

    三个标签页置于顶端 效果图: 在文件BoardTabHost.java中定义页面切换的效果:切换页面时,当前页面滑出,目标页面滑入.这是2个不同的动画设定动画时要区分对待 import android ...

  9. android app 主界面,android ViewPager实现App主界面Tab菜单页面切换和点击事件

    Tabhost实现页面滑动切换比较麻烦,这里介绍一下viewPage 控件. 实现了三屏滑动带标题点击和tab页面内按钮的的点击事件实现: viewPage  的优点是可以滑动切换缺点是MainAct ...

最新文章

  1. python 基础_列表的其他操作 4
  2. S-BEV:用于天气和光照不变的3-DoF定位的语义鸟瞰视图表示
  3. R语言ggplot2可视化:拟合二次曲线(quadratic curve)并使用ggplot2进行可视化、可视化两个响应变量和一个预测变量的二次曲线
  4. 准确率(Precision)、召回率(Recall)以及综合评价指标(F1-Measure )
  5. 第十六届全国大学生智能车竞赛创意组别-航天智慧物流
  6. html去除边角,WEB开发向HTML5及CSS3迈进(1)——圆框边角的处理
  7. 我应该如何道德地接近用户密码存储以便以后的明文检索?
  8. Oracle 分析函数--Row_Number()
  9. mysql 删除重复数据_MySQL查找和删除重复数据
  10. CF 1103B Game with modulo
  11. java 中的流_Java中的流(IO
  12. paping使用来测试联通网站由于tcp协议导致的无法通信问题超时问题
  13. 数学建模算法与应用_《数学建模算法与应用》笔记【1】
  14. Explaining and Harnessing Adversarial Examples论文解读
  15. 软考数据库系统工程师day01
  16. 2021暗月web渗透测试攻防全栈红队视频教程网络安全程师培训全系列学习心得分享
  17. Java Servlet 详解:(三)在 IDES 中开发 Servlet-多图警告
  18. 对DTI进行概率追踪(Probability tracking)(使用的是PANDA工具)
  19. buntu18.04无线网卡无法识别问题
  20. Android 源码目录结构

热门文章

  1. 女生爱问的几个问题的标准答案
  2. 第3关:花式索引与布尔索引
  3. java服务器登录系统,JavaWeb入门登陆注册系统
  4. 机房重构---清空文本框或组合框内容
  5. android ppt 转图片显示不全,PPT转PDF图片显示不全怎么办?如何完美解决PPT转PDF文件?...
  6. ftp端口号20和21的区别是什么?
  7. malloc/calloc/realloc
  8. jmeter基础逻辑控制器之if控制器
  9. 记住这3点,有效提高江苏专转本上岸率
  10. 微信自带群发功能在哪?如何解决200上限?一文详解!