2014-04-11 8 views
1

저는 비교적 안드로이드를 처음 접했고 이미지 (URL : http://i.stack.imgur.com/Hg5sT.png) 에서처럼 탭 선택을 사용자 정의 할 수 있는지 궁금합니다. 이미지에서 보는 바와 같이 탭을 선택하면 아래를 향한 작은 삼각형 모양 (이미지)이 있습니다. 그렇다면 xml/java를 어떻게 달성 할 수 있습니까? 나는 탭에 배경 이미지가있는 것을 시도했다. 그러나 예상대로 나타나지 않았다. 나는 온라인으로 많은 것을 연구했지만 이것을하는 법을 찾을 수 없었다.이미지가있는 Android 사용자 정의 탭 선택 표시기

양해 해 주셔서 감사합니다. http://i.stack.imgur.com/Hg5sT.png

답변

1

이 작업을 수행하려면 단일 탭에 대해 두 개의 이미지를 만들어야합니다. 그리고 드로어 블/사진 selector1 @

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.xml state_selec에

<?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> 

ted 이미지가 home_selected 될 수 있지만 선택되지 않은 상태에서는 이미지가 대체됩니다. 각 탭에 대해이 두 xml 파일을 만들어야합니다. 그리고 당신의 문제는 해결 될 것입니다.

+0

문제가 해결되지 않았지만 아이디어를 제공했습니다. 나는이 대답을 받아 들일 것이다. – user3346173

관련 문제