Android 如何为TabHost制作非常规形状?

Android 如何为TabHost制作非常规形状?,android,android-tabhost,tabwidget,Android,Android Tabhost,Tabwidget,我需要为选项卡创建一个特定的形状。应该是这样的 是否可以通过形状创建它?还是仅仅把它当作一个图像 我还看到一些人在需要创建非常专门的选项卡时使用这种方式:他们只需在photoshop中创建所有选项卡的所有变体,选中和未选中(例如,tab1_选中,tab1_未选中,…),但他们不会为每个选项卡创建图像,而是创建整个TabWidget图像(例如,选中tab1而未选中其他选项卡的图像),然后在选中某个选项卡时加载相应的图像 这是正确的方法吗?通过这种方法,你可以用厚的底部分隔符等创建非常酷的标签

我需要为选项卡创建一个特定的形状。应该是这样的

是否可以通过形状创建它?还是仅仅把它当作一个图像

我还看到一些人在需要创建非常专门的选项卡时使用这种方式:他们只需在photoshop中创建所有选项卡的所有变体,选中和未选中(例如,tab1_选中,tab1_未选中,…),但他们不会为每个选项卡创建图像,而是创建整个TabWidget图像(例如,选中tab1而未选中其他选项卡的图像),然后在选中某个选项卡时加载相应的图像

  • 这是正确的方法吗?通过这种方法,你可以用厚的底部分隔符等创建非常酷的标签
  • 如何以这种方式加载整个TabWidget后台?通常通过
    background
    属性或其他方式加载

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

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
}
tabHost.setOnTabChangedListener(新的ontabchangedListener(){
@凌驾
已更改的公共无效项(字符串选项卡ID){
MyClass.setTabColor(tabHost);
}
});
公共静态无效setTabColor(TabHost TabHost){

对于(int i=0;我对问题的第一部分有什么想法-创建特定形状?只需根据需要制作图像和背景,但透明度不起作用。感谢您提供的信息,尽管如果我将颜色设置为与TabWidget bg color相同,透明度可能会被欺骗。:)