如何为TabHost制作出不寻常的形状?

时间:2011-06-23 14:37:29

标签: android android-tabhost tabwidget

我需要为Tab创建一个特定的形状。看起来应该是这样的

enter image description here

是否可以通过形状创建它?或者只是将其用作图像?

我还看到有些人在必须创建非常专业的标签时会使用这种方式:他们只是创建photoshop中所有选项卡的所有变体,选中和未选中(例如,tab1_selected,tab1_unselected,...),但是他们没有为每个标签创建图像,但是文学他们创建了整个TabWidget图像(例如,选择了tab1的图像,以及未选择的其他标签),然后在选择某个标签时加载相应的图像。

  • 这是正确的方法吗?通过这种方式,您可以使用厚底分隔线创建非常酷的标签等。
  • 我应该如何以这种方式加载整个TabWidget背景?通过background属性或其他方式的常用方法?

1 个答案:

答案 0 :(得分:4)

使用以下代码,代码中的MyClass是编写代码的 ClassName

tabHost.setOnTabChangedListener(new OnTabChangeListener() {
        @Override
        public void onTabChanged(String tabId) {
            MyClass.setTabColor(tabHost);
        }
    });

public static void setTabColor(TabHost tabhost) {
    for(int i=0;i<tabhost.getTabWidget().getChildCount();i++) {
        tabhost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.tab_bg); //unselected
    }
    tabhost.getTabWidget().getChildAt(tabhost.getCurrentTab()).setBackgroundResource(R.drawable.tab_bg_selected); // selected
}