关于Android TabHost切换Tab字体的颜色背景颜色改变
先是layout文件夹中的布局文件,代码如下:
android:layout_width=\ android:layout_height=\ android:orientation=\ android:background=\ android:padding=\ android:id=\ android:layout_width=\ android:layout_height=\ android:id=\ android:layout_width=\ android:layout_height=\ android:background=\ android:padding=\
然后是java文件,
[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(\
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(\
System.out.println(\ 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)); } } } }
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(\
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 };
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Android TabHost用法在线全文阅读。
相关推荐: