我正在为我的Android应用程序创建一些自定义选项卡,但是设计师在顶部设计了小曲线的选项卡。因此,在这些曲线之间应该有一个"透明"的颜色。
制作曲线并不困难,但问题是,标签主机显然有主题背景色,而不是透明的背景色(在我的例子中是白色)。
我不认为这是可能的透明背景色,因为屏幕内容是上面(在我的情况下)的选项卡。第二种选择是将选项卡内容"移动"到tabWidget的顶部一些像素,但似乎也不可能。最后一个选择是,让应用程序的背景颜色与默认的应用程序背景颜色相匹配,或者使用可绘制的背景颜色。
如果有可能的话?
如果没有,最糟糕的情况是简单地为每个选项卡设置背景颜色;只是想知道。
谢谢!
你好,希望对你有所帮助。
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.tab);
host = getTabHost();
host.addTab(host.newTabSpec(Constants.TAG_TAB1).setIndicator(Constants.TAG_TAB1,getResources().getDrawable(R.drawable.img1)).setContent(new Intent(this, Activity1.class)));
host.addTab(host.newTabSpec(Constants.TAG_TAB2).setIndicator(Constants.TAG_TAB2,getResources().getDrawable(R.drawable.img2)).setContent(new Intent(this, Activity2.class);
host.addTab(host.newTabSpec(Constants.TAG_TAB3).setIndicator(Constants.TAG_TAB3,getResources().getDrawable(R.drawable.img3)).setContent(new Intent(this, Activity3.class)));
host.addTab(host.newTabSpec(Constants.TAG_TAB4).setIndicator(Constants.TAG_TAB4,getResources().getDrawable(R.drawable.img4)).setContent(new Intent(this, Activity4.class)));
host.setCurrentTab(0);
for(int i=0;i<host.getTabWidget().getChildCount();i++)
{
host.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.tab_bg);
}
host.getTabWidget().getChildAt(host.getCurrentTab()).setBackgroundResource(android.R.color.transparent);// selected
host.setOnTabChangedListener(this);
}
@Override
public void onTabChanged(String tabId)
{
for(int i=0;i<host.getTabWidget().getChildCount();i++)
{
host.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.tab_bg);
}
host.getTabWidget().getChildAt(host.getCurrentTab()).setBackgroundResource(android.R.color.transparent);// selected
}