[转载]设置TabHost的透明标签-Android开发问题解答-eoe Android开发者社区_Android开发论坛.
图1 
图2 
理想的情况应该是图1的效果,但是发现background中使用png图片默认还是会有黑色底色,请问应该如何达到透明的效果
布局如下
<!--?xml version="1.0" encoding="utf-8"?-->
代码如下
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TabHost;
public class TabHostActivity extends TabActivity implements
OnCheckedChangeListener, OnFocusChangeListener
{
private TabHost tabHost;
private RadioGroup tabs;
private RadioButton btn_login, btn_register, btn_forgot;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.tabhost_layout);
tabs = (RadioGroup) findViewById(R.id.main_tabs);
btn_login = (RadioButton) findViewById(R.id.tab_radio01);
btn_register = (RadioButton) findViewById(R.id.tab_radio02);
btn_forgot = (RadioButton) findViewById(R.id.tab_radio03);
btn_login.setOnFocusChangeListener(this);
btn_register.setOnFocusChangeListener(this);
btn_forgot.setOnFocusChangeListener(this);
tabs.setOnCheckedChangeListener(this);
tabHost = getTabHost();
tabHost.addTab(tabHost
.newTabSpec("login")
.setIndicator(getResources().getString(R.string.login),
getResources().getDrawable(R.drawable.login))
.setContent(new Intent(this, LoginActivity.class)));
tabHost.addTab(tabHost
.newTabSpec("register")
.setIndicator(getResources().getString(R.string.register),
getResources().getDrawable(R.drawable.register))
.setContent(new Intent(this, RegisterActivity.class)));
tabHost.addTab(tabHost
.newTabSpec("forgot")
.setIndicator(getResources().getString(R.string.forgotPass),
getResources().getDrawable(R.drawable.forgot_password))
.setContent(new Intent(this, ForgotPassActivity.class)));
}
@Override
public void onFocusChange(View v, boolean hasFocus)
{
switch (v.getId())
{
case R.id.tab_radio01:
break;
case R.id.tab_radio02:
break;
case R.id.tab_radio03:
break;
}
}
@Override
public void onCheckedChanged(RadioGroup group, int checkedId)
{
switch (checkedId)
{
case R.id.tab_radio01:
tabHost.setCurrentTabByTag("login");
break;
case R.id.tab_radio02:
tabHost.setCurrentTabByTag("register");
break;
case R.id.tab_radio03:
tabHost.setCurrentTabByTag("forgot");
break;
}
}
}
Mikel