2013-07-27 2 views
15

Я очень новичок в android. Теперь я создаю небольшое приложение.Как настроить вкладки Android или изменения фона?

Мне нужно изменить внешний вид android по умолчанию в 2.2. Итак, здесь я пытаюсь изменить фон вкладок. Можете ли вы помочь мне сделать это.

Мне нравится способ использования xml/style.

Это то, что мне нужно, это фактический выход.

Tabs

+0

http://stackoverflow.com/ вопросы/2099959/как-делать-я-переключающий-фон-оф-ан-андроид-элементный-виджет –

+0

Я попробовал реальную ссылку, предоставленную selva. Но не получить результат. Может быть, это моя проблема. –

+0

@SibirajPR, посмотрите здесь, http://joshclemm.com/blog/?p=136 – yugidroid

ответ

43

Вкладка Узел XML файл

TabHost

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <LinearLayout android:orientation="vertical" 
     android:layout_width="fill_parent" android:layout_height="fill_parent"> 

     <TabWidget android:id="@android:id/tabs" 
      android:layout_width="fill_parent" android:layout_height="wrap_content" /> 
     <FrameLayout android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" android:layout_height="fill_parent"> 
     </FrameLayout> 

    </LinearLayout> 

</TabHost> 

в вашем Основная деятельность

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mTabHost = (TabHost) findViewById(android.R.id.tabhost); 

    setupTab(new TextView(this), "Tab 1"); 
    setupTab(new TextView(this), "Tab 2"); 
    setupTab(new TextView(this), "Tab 3"); 
} 

private void setupTab(final View view, final String tag) { 
    View tabview = createTabView(mTabHost.getContext(), tag); 
    TabSpec setContent = mTabHost.newTabSpec(tag).setIndicator(tabview).setContent(new TabContentFactory() { 
     public View createTabContent(String tag) { 
      return view; 
     } 
    }); 
    mTabHost.addTab(setContent); 
} 

private static View createTabView(final Context context, final String text) { 
    View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null); 
    TextView tv = (TextView) view.findViewById(R.id.tabsText); 
    tv.setText(text); 
    return view; 
} 

CustomTabsLayout tabs_bg.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tabsLayout" android:layout_width="fill_parent" 
    android:layout_height="fill_parent" android:background="@drawable/tab_bg_selector" 
    android:padding="10dip" android:gravity="center" android:orientation="vertical"> 

    <TextView android:id="@+id/tabsText" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:text="Title" 
     android:textSize="15dip" android:textColor="@drawable/tab_text_selector" /> 
</LinearLayout> 

tab_text_selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_selected="true" android:color="@android:color/white" /> 
    <item android:state_focused="true" android:color="@android:color/white" /> 
    <item android:state_pressed="true" android:color="@android:color/white" /> 
    <item android:color="#f8f8f8" /> 
</selector> 

tab_bg_selector

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
     <!-- Active tab --> 
    <item android:state_selected="true" android:state_focused="false" 
     android:state_pressed="false" android:drawable="@drawable/tab_bg_selected" /> 
    <!-- Inactive tab --> 
    <item android:state_selected="false" android:state_focused="false" 
    android:state_pressed="false" android:drawable="@drawable/tab_bg_unselected" /> 
    <!-- Pressed tab --> 
    <item android:state_pressed="true" android:drawable="@android:color/transparent" /> 
    <!-- Selected tab (using d-pad) --> 
    <item android:state_focused="true" android:state_selected="true" 
    android:state_pressed="false" android:drawable="@android:color/transparent" /> 
</selector> 

tab_bg_selected.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient android:startColor="#A8A8A8" android:centerColor="#7F7F7F" 
     android:endColor="#696969" android:angle="-90" /> 
</shape> 

tab_bg_unselected.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient android:startColor="#5C5C5C" android:centerColor="#424242" 
    android:endColor="#222222" android:angle="-90" /> 
</shape> 

И, наконец, в вашем главном классе деятельности

mTabHost.getTabWidget().setDividerDrawable(R.drawable.tab_divider); 

И закончить :)

+0

Спасибо за этот длинный ответ. Я вернусь к вам после того, как я ее осуществлю. –

+0

Эта помощь вам? :) –

+0

Да, это так. Спасибо –

Смежные вопросы