如何更改Android中的标签样式?

我想我的Android标签看起来像在官方的TWitter应用程序中的平板和简单。 我如何重写默认(光)主题,并使用样式/主题定义更改选项卡的背景图像?

Solutions Collecting From Web of "如何更改Android中的标签样式?"

您可以通过代码调整标签 – 这里是我的应用程序摘录,但您也可以直接指定主题而不是背景图片。 (我还没有使用通过xml属性的方式,但不知道如果这是可用的以及)。

private void initTabs() { tabs = (TabHost) findViewById(R.id.tabhost); tabs.setup(); tabs.setBackgroundResource(R.drawable.bg_midgray); TabHost.TabSpec spec; // Location info txtTabInfo = new TextView(this); txtTabInfo.setText("INFO"); txtTabInfo.setPadding(0, 5, 0, 0); txtTabInfo.setTextSize(11); txtTabInfo.setBackgroundResource(R.drawable.bg_tab_left_active_right_inactive); txtTabInfo.setTextColor(Color.DKGRAY); txtTabInfo.setGravity(Gravity.CENTER_HORIZONTAL); txtTabInfo.setHeight(39); spec = tabs.newTabSpec("tabInfo"); spec.setContent(R.id.tabInfo); spec.setIndicator(txtTabInfo); tabs.addTab(spec); ... } 

我用我的drawable, tab_background.xml的下面的定义

  <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_selected="true" android:drawable="@drawable/tab_bg_selected" /> <item android:drawable="@drawable/tab_bg_normal" /> </selector> 

然后遍历选项卡来设置它们。

 TabWidget tabWidget = tabHost.getTabWidget(); for(int i=0; i<tabWidget.getChildCount(); i++) tabWidget.getChildAt(i).setBackgroundResource(R.drawable.tab_background); 

你也可以通过XML来创build/定义应用程序中所有选项卡的全局主题。 这里有更多关于创build窗口小部件主题的信息: http : //developer.android.com/guide/topics/ui/themes.html