2014-04-11 33 views
1

我相对较新的android,我真的想知道是否有可能自定义选项卡选择如图像(网址:http://i.stack.imgur.com/Hg5sT.png)。正如你在图像中看到的,当选择一个标签时,会有一个向下的三角形形状(图像)。如果是的话,这怎么能实现xml/java。我试着在选项卡中有一个背景图像,但没有按预期显示。我在网上进行了很多研究,但无法找到如何做到这一点。Android自定义选项卡选择指标与图像

感谢您的耐心配合。 http://i.stack.imgur.com/Hg5sT.png

回答

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> 

@绘制/ 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> 
上state_selec

如果图像将被home_selected选中,但在未选中状态下图像将被替换,您必须为每个选项卡创建这两个xml文件。你的问题将得到解决。

+0

它没有解决我的问题,但给了我想法。我会接受这个答案 – user3346173