我正在为我的Android应用创建一些自定义标签,但是设计师在顶部设计了带有小曲线的标签。因此,在这些曲线之间应该有“透明”的颜色。
制作曲线并不困难,但问题在于标签主机显然具有主题背景颜色(在我的情况下为白色),而不是透明的背景颜色。
我不认为可以制作透明的背景颜色,因为屏幕内容高于(在我的情况下)标签。第二种方法是将标签内容“移动”一些像素到tabWidget的顶部,但似乎也不可能。最后一种方法是,让应用程序背景颜色与默认的应用程序背景颜色相匹配或使用drawable作为背景会很好。
如果有可能的话?
如果没有,更糟糕的情况是简单地将背景颜色添加到每个标签;只是想知道。
谢谢!
答案 0 :(得分:1)
您好希望对您有所帮助。
@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
}