2014-01-08 2 views
0

나는 탭 호스트와 안드로이드 애플 리케이션을 구축하고 잘 작동합니다. 문제는 선택기 XML 파일로 탭 호스트를 사용자 정의하고 싶지만 어떻게하는지 알지 못합니다.안드로이드 애플 리케이션의 사용자 정의 탭

내 tabhost은 이것이다 :

http://i.stack.imgur.com/xYMuh.png

그리고이하고 싶은 :

http://i.stack.imgur.com/UJu1K.png

MainActivity의 내 코드 나 레이아웃을 통해 탭을 만들 때 :

 // Tab1 
     View tab1 = getLayoutInflater().inflate(R.layout.tab_indicator, null); 
     TextView title1 = (TextView)tab1.findViewById(R.id.titleTab); 
     title1.setText("¿Qué hacer?"); 
     ImageView img1 = (ImageView)tab1.findViewById(R.id.iconTab); 
     img1.setImageResource(R.drawable.what); 
     mTabHost.addTab(mTabHost.newTabSpec("que hacer").setIndicator(tab1), 
       HacerFragment.class, null); 

     // Tab2 
     View tab2 = getLayoutInflater().inflate(R.layout.tab_indicator, null); 
     TextView title2 = (TextView)tab2.findViewById(R.id.titleTab); 
     title2.setText("¿A dónde ir?"); 
     ImageView img2 = (ImageView)tab2.findViewById(R.id.iconTab); 
     img2.setImageResource(R.drawable.where); 
     mTabHost.addTab(mTabHost.newTabSpec("donde").setIndicator(tab2), 
       DestacadoFragment.class, null); 

     // Tab3 
     View tab3 = getLayoutInflater().inflate(R.layout.tab_indicator, null); 
     TextView title3 = (TextView)tab3.findViewById(R.id.titleTab); 
     title3.setText("Lee tu mapa"); 
     ImageView img3 = (ImageView)tab3.findViewById(R.id.iconTab); 
     img3.setImageResource(R.drawable.read); 
     mTabHost.addTab(mTabHost.newTabSpec("mapa").setIndicator(tab3), 
       LectorFragment.class, null); 

     // Tab4 
     View tab4 = getLayoutInflater().inflate(R.layout.tab_indicator, null); 
     TextView title4 = (TextView)tab4.findViewById(R.id.titleTab); 
     title4.setText("Captura"); 
     ImageView img4 = (ImageView)tab4.findViewById(R.id.iconTab); 
     img4.setImageResource(R.drawable.capture); 
     mTabHost.addTab(mTabHost.newTabSpec("captura").setIndicator(tab4), 
       CapturaFragment.class, null); 

tab_indicator.xml (각 탭) :

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="0dip" 
    android:layout_height="wrap_content"  
    android:layout_weight="1" 
    android:orientation="vertical" 
    android:background="@color/tabhost_background" 
    android:padding="5dp" > 

    <ImageView android:id="@+id/iconTab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:src="@drawable/buscar24" /> 

    <TextView android:id="@+id/titleTab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_below="@+id/iconTab" 
     style="@drawable/tab_selector" /> 

</RelativeLayout> 

감사합니다.

+0

당신이 조각 탭 호스트를 사용됩니까? –

+0

예, 조각을 사용하고 있습니다. – Yeray

+0

좋아, 그럼 바로이 [링크] (http://www.learn2crack.com/2013/12/android-swipe-view-tab-layout-example.html)로 이동해야합니다 –

답변

0

tab_indicator.xml :

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/relative" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@drawable/background_selector" 
android:padding="5dp" > 

<ImageView 
    android:id="@+id/iconTab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:clickable="false" 
    android:focusable="false" 
    android:background="@drawable/image_selector" /> 

<TextView 
    android:id="@+id/titleTab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/iconTab" 
    android:layout_centerHorizontal="true" 
    android:clickable="false" 
    android:focusable="false" 
    android:text="HELLO" /> 

</RelativeLayout> 

background_selector.xml :

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/selected_thick_bg" android:state_selected="true"> </item> 
<item android:drawable="@drawable/unselected_light_bg" android:state_selected="false"> 
</item> 
</selector> 

image_selector.xml :

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/selected_thick_image" android:state_selected="true"> </item> 
<item android:drawable="@drawable/unselected_light_image" 
android:state_selected="false"> </item> 
</selector> 
+0

니스! 잘 작동합니다. 정말 고맙습니다. – Yeray