Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.74
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 281
#1

Поменять цвет табов в TabHost - Программирование Android

02.09.2013, 14:00. Просмотров 2658. Ответов 9
Метки нет (Все метки)

Добавлено через 19 часов 54 минуты
Перепробовал все tutorial, не нашёл ни одного где показано как поменять и фон и картинку. У меня получается так - либо фон изменился - либо картинка встала. Как совместить? Мучаюсь третий день.
http://pixs.ru/showimage/tiredjpg_7004073_8928441.jpg

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public class MainActivity extends TabActivity  {
   
   
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        // получаем TabHost
        TabHost tabHost = getTabHost();
        // инициализация была выполнена в getTabHost
        // метод setup вызывать не нужно
       // TabHost.TabSpec tabSpec;
        TabSpec spec;
        
        Intent intent;
        View view;
        
        tabHost.getTabWidget().setDividerDrawable(R.drawable.divider); //разделитель между табами
       
        spec = tabHost.newTabSpec("tab1");
        view = createTabView(tabHost.getContext(), "О методике"); //создаём пользовательский view для таба
        intent = new Intent().setClass(this, OneActivity.class);
        spec.setIndicator("О методике", getResources().getDrawable(R.drawable.icon_methods)).setContent(intent);    
        tabHost.addTab(spec);
        
        intent = new Intent().setClass(this, TwoActivity.class);
        view = createTabView(tabHost.getContext(), "Упражнения");
        spec = tabHost.newTabSpec("tab2").setIndicator(view).setContent(intent);
        tabHost.addTab(spec);
        
        intent = new Intent().setClass(this, ThreeActivity.class);
        view = createTabView(tabHost.getContext(), "Полная версия");
        spec = tabHost.newTabSpec("tab3").setIndicator(view).setContent(intent);   
        tabHost.addTab(spec);
       
   
        
    }
    private static View createTabView(final Context context, final String text) {
 
        View view = LayoutInflater.from(context).inflate(R.layout.tab_bg, null);
        TextView tv = (TextView) view.findViewById(R.id.tabsText);
        tv.setText(text);
        return view;
}
icon_methods
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- When selected, use grey -->
    <item android:drawable="@drawable/icon1"
          android:state_selected="true" />
    <!-- When not selected, use white-->
    <item android:drawable="@drawable/icon2" />
</selector>

tab_bg
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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:textSize="15dip"
        android:textColor="@drawable/tab_text_selector" />
</LinearLayout>

tab_bg_selector
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="utf-8"?>
 
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_selected="true" android:state_focused="false"
    android:state_pressed="false" android:drawable="@drawable/tab_bg_selected" />
 <item android:state_selected="false" android:state_focused="false"
    android:state_pressed="false" android:drawable="@drawable/tab_bg_unselected" />
 <item android:state_pressed="true" android:drawable="@drawable/tab_bg_unselected" />
 <item android:state_focused="true" android:state_selected="true"
    android:state_pressed="false" android:drawable="@drawable/tab_bg_selected" />
</selector>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2013, 14:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поменять цвет табов в TabHost (Программирование Android):

Цвет файлов в VCS - поменять синий цвет имен файлов - Программирование Android
Всем привет, вот каким образом можно поменять цвет имени файлов в навигаторе проекта для файлов которые добавлены в VCS и были изменены....

Поменять цвет! - Программирование Android
Как поменять цвет! там где выделено красное линией!

Как поменять цвет seekBar? - Программирование Android
Background меняет фон, foreground вообще никаких изменений. Хочу поменять сам цвет ползунка.

Оптимально поменять цвет значка SwipeRefreshLayout - Программирование Android
У меня есть активити в нем 5 больших TextView красного цвета(5F00 - значение цвета). А для SwipeRefreshLayout я поставил ...

Поменять цвет кнопок, не убрав анимацию нажатия - Программирование Android
Ребята, как это сделать? http://savepic.ru/13462938.jpg Как видите, текст в кнопках белый, а кнопки - синие и зелёные. Если задать...

Как поменять цвет Background в диалоговом окне? - Программирование Android
Здравствуйте! Подскажите,пожалуйста, как поменять цвет Background в диалоговом окне?

9
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
02.09.2013, 16:44 #2
ImageView добавить не вариант в Layout Tab-а?
1
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 281
03.09.2013, 01:44  [ТС] #3
contedevel, точно! Добавил. Но получилось всех табов 1 иконка. А как сделать для каждого таба свою?
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
03.09.2013, 06:32 #4
Картинку нужно в коде задавать, где заголовок вкладки указываешь…

Добавлено через 54 секунды
В createTabView
0
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 281
03.09.2013, 12:41  [ТС] #5
contedevel, а как именно? Можете пример показать?
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
04.09.2013, 02:09 #6
Java
1
private static View createTabView(final Context context, final String text, int id)
id картинки в ресурсах, а далее просто инициалицируете ImageView как TextView и назначаете картинку ему

Добавлено через 1 минуту
Картинку, естественно, по переданному ид загружаете предварительно из ресурсов, если нет метода, который бы сразу ее из ресурсов грузил, просто с телефона лень комп включать
1
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 281
05.09.2013, 12:34  [ТС] #7
Цитата Сообщение от contedevel Посмотреть сообщение
id картинки в ресурсах,
Вот это не понял.
как-то так?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
public class MainActivity extends TabActivity  {
   
   
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        // получаем TabHost
        TabHost tabHost = getTabHost();
         TabSpec spec;
        
        Intent intent;
        View view;
        ImageView imgView;
        
        imgView.setImageResource(R.drawable.icon1);
        
        tabHost.getTabWidget().setDividerDrawable(R.drawable.divider); //разделитель между табами
       
        intent = new Intent().setClass(this, OneActivity.class);
        view = createTabView(tabHost.getContext(), "О методике", imgView.setImageResource(R.drawable.icon1)); //создаём пользовательский view для таба
        spec = tabHost.newTabSpec("tab1").setIndicator(view).setContent(intent);   
        tabHost.addTab(spec);
        
        intent = new Intent().setClass(this, TwoActivity.class);
        view = createTabView(tabHost.getContext(), "Упражнения");
        spec = tabHost.newTabSpec("tab2").setIndicator(view).setContent(intent);
        tabHost.addTab(spec);
        
        intent = new Intent().setClass(this, ThreeActivity.class);
        view = createTabView(tabHost.getContext(), "Полная версия");
        spec = tabHost.newTabSpec("tab3").setIndicator(view).setContent(intent);   
        tabHost.addTab(spec);
        
 
        
       
        
    }
    private static View createTabView(final Context context, final String text, int id) {
 
        View view = LayoutInflater.from(context).inflate(R.layout.tab_bg, null);
        ImageView iv=(ImageView) view.findViewById(R.id.imageView1);
        TextView tv = (TextView) view.findViewById(R.id.tabsText);
        tv.setText(text);
        iv.setImageResource(id);
        return view;
}
  
}
view = createTabView(tabHost.getContext(), "О методике", imgView.setImageResource(R.drawable.icon1));
Это место не правильно. Как получить этот id?
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
05.09.2013, 12:48 #8
Получить ID картинки достаточно так
Java
1
int id = R.drawable.your_picture;
Извини, eclipse нет под рукой, не проверял этот код...
Ещё, как вариант, передать Bitmap
1
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 281
05.09.2013, 15:13  [ТС] #9
Цитата Сообщение от contedevel Посмотреть сообщение
Получить ID картинки достаточно так
Java
1
int id = R.drawable.your_picture;
Извини, eclipse нет под рукой, не проверял этот код...
Ещё, как вариант, передать Bitmap
Всё работает, спасибо!
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
05.09.2013, 21:20 #10
Да, не за что!
0
05.09.2013, 21:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2013, 21:20
Привет! Вот еще темы с ответами:

Как поменять цвет нажатой кнопки в runtime? - Программирование Android
Надо для кнопки менять цвета в нажатом/ненажатом состоянии. Во время работы программы. Цвет бордюра тоже надо менять. Как это делать?

tabhost - Программирование Android
всем привет много искал но всё таки не нашёл мне нужно что бы вкладки были с лева 5 штук , но что то найти не могу как сделать их...

TabHost - Программирование Android
Как можно сделать список табов в табе? Возможно это решается без TabHost?

Использование TabHost - Программирование Android
Я ни как не могу понять как использовать TabHost вместе с фрагментом. Пожалуйста приведите пример.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru