我对android比较陌生,我真的很想知道是否可以像图片中那样自定义标签选择(网址:http://i.stack.imgur.com/Hg5sT.png)。正如您在图像中看到的那样,当选择选项卡时,会有一个向下指向的小三角形(图像)。如果是,那怎样才能实现xml / java。我尝试在选项卡中显示背景图像,但它没有按预期显示。我在网上研究了很多,但无法找到如何做到这一点。
感谢您的耐心与合作。 http://i.stack.imgur.com/Hg5sT.png
答案 0 :(得分:1)
如果要实现此目的,必须为单个选项卡创建两个图像。并在选择时更改它们
MainActivity
public class MainActivity extends TabActivity
{
TabHost tabHost;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabHost = getTabHost();
TabSpec spec;
Intent intent;
//Home Tab
View view1 = LayoutInflater.from(MainActivity.this).inflate(R.layout.home, null); // R.layout.home is the home.xml where you have entered two image
intent = new Intent(MainActivity.this, Firstclass.class);
spec = tabHost.newTabSpec("HOME").setIndicator(view1)
.setContent(intent);
tabHost.addTab(spec);
//Calendar Tab
View view2 = LayoutInflater.from(MainActivity.this).inflate(R.layout.calendar_tab, null);
intent = new Intent(MainActivity.this, Calendar.class);
spec = tabHost.newTabSpec("CALENDAR").setIndicator(view2)
.setContent(intent);
tabHost.addTab(spec);
Home.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/home_tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="3dp"
android:layout_centerInParent="true"
android:background="@drawable/selector1" />
</RelativeLayout>
@ drawable / selector1
selector1.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/home_selected" android:state_selected="true"></item>
<item android:drawable="@drawable/home_unselect" android:state_selected="false"></item>
</selector>
on state_selected图像将被home_selected但在未选择状态下图像将被替换你必须为每个标签创建这两个xml文件。而你的问题将得到解决。