1 - использовать пользовательский вид:
spec = tabHost.newTabSpec("groups");
View view = LayoutInflater.from(this).inflate(R.layout.tabwidget_tabs, tabHost.getTabWidget(), false);
spec.setIndicator(view);
spec.setContent(intent);
вместо:
spec = tabHost.newTabSpec("groups").setIndicator("groups", res.getDrawable(R.drawable.ic_tab_groups)).setContent(intent);
tabHost.addTab(spec);
А затем определите представление для вкладок в файле tabwidget_tabs.xml (вы можете определить ImageView перед textView и textSize):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tabsLayout"
android:layout_width="wrap_content"
android:layout_height="34dp"
android:background="@drawable/tabs_bkgrd"
android:padding="5dp"
android:orientation="vertical">
<TextView android:id="@+id/tabsText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textStyle="bold"
android:gravity="center_horizontal"
android:textSize="14dp" />
</LinearLayout>
2 - Невозможно использовать шестнадцатеричные тройки, чтобы изменить цвет фона вкладок, потому что они рисуются, а не цвета. Однако вы можете использовать селектор, который изменяет рисование. и вы можете объединить это решение с setColorFilter () и android: tint, а затем вы можете выбрать фон, используя шестнадцатеричные тройки: Как тонировать растровое изображение
tabs_bkgrd.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Non focused states -->
<item android:state_focused="false" android:state_selected="false"
android:state_pressed="false" android:drawable="@drawable/tab_unselected_shape" />
<item android:state_focused="false" android:state_selected="true"
android:state_pressed="false" android:drawable="@drawable/tab_selected_shape" />
<!-- Focused states -->
<item android:state_focused="true" android:state_selected="false"
android:state_pressed="false" android:drawable="@drawable/tab_focused_shape" />
<item android:state_focused="true" android:state_selected="true"
android:state_pressed="false" android:drawable="@drawable/tab_focused_shape" />
<!-- Pressed -->
<item android:state_pressed="true" android:drawable="@drawable/tab_pressed_shape" />
</selector>
Вы можете определить цвет или форму, tab_selected_shape.xml:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="@color/gold1"
android:centerColor="@color/gold2"
android:endColor="@color/gold2"
android:angle="@integer/vertical_shape" />
</shape>
3- Линия тоже рисуется. Вы можете найти файлы в SDK и скопировать их в свой проект после изменения их, чтобы изменить цвет с помощью GIMP. Вы можете объединить это решение с setColorFilter () и android: tint, а затем вы можете выбрать фон, используя шестнадцатеричные тройки. Читать:
дальнейшее объяснение
Android-СДК-linux_x86 / платформы / андроид-7 / данных / RES / вытяжке
tab_bottom_left.xml,
tab_bottom_right.xml,
tab_indicator.xml (define state changes)
Android-СДК-linux_x86 / платформы / Android-7 / данные / RES / вытяжка-MDPI * * тысяча двадцать семь
tab_focus.9.png (изменить цвет)
tab_focus_bar_left.9.png
tab_focus_bar_right.9.png
tab_press.9.png (изменить цвет)
tab_press_bar_left.9.png
tab_press_bar_right.9.png
tab_selected.9.png (изменить цвет)
tab_selected_bar_left.9.png tab_selected_bar_right.9.png
tab_unselected.9.png