如何为TabHost创建非常规形状?

3

我需要创建一个特定的Tab形状。它应该像这样:

enter image description here

通过shape是否可以创建它?还是只能使用它作为图像?

我还看到一些人在必须创建非常专业化的选项卡时使用此方法:他们仅在Photoshop中创建所有选项卡的所有变体,包括选定和未选定的(例如,tab1_selected、tab1_unselected等),但他们不为每个选项卡创建图像,而是为整个TabWidget图像(例如,带有选定的tab1和其他未选定的选项卡)创建文本,然后在选择某个选项卡时加载相应的图像。

  • 这是正确的做法吗?这样可以创建具有厚底部分隔符的很酷的选项卡。
  • 在这种方式下,我应该如何加载整个TabWidget背景?通常的方式是通过background属性还是其他方式?
1个回答

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
}

有没有关于第一个问题的想法——如何创建特定的形状? - sandalone
1
只需按照您的要求制作图像和背景,但透明度将无法使用。 - Neeraj Nama
谢谢提供信息,不过如果我将颜色设置为与TabWidget背景颜色相同,则透明度可以被欺骗。 :) - sandalone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接