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


    改章节是一篇关于android颜色的帖子

        

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

        android和颜色

        切换后效果

        android和颜色

        先是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;
    
    
    	@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));
                }
            }
        }
    }

        

        

        

        

        

        

    文章结束给大家分享下程序员的一些笑话语录: 自从有了Photoshop,我再也不相信照片了!(没有Photoshop的年代,胶片照片年代做假的也不少,那时候都相信假的!)

    --------------------------------- 原创文章 By
    颜色和字体
    ---------------------------------

  • 相关阅读:
    springmvc中request的线程安全问题
    日志帮助类
    模态框的实现
    getopts的使用方法
    自动生成头文件的脚本
    shell脚本中出现图形化界面
    Linux Centos关机命令
    Linux下IP的存储位置
    tar只解压tar包中某个文件
    Swift 笔记1
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3097687.html
Copyright © 2020-2023  润新知