Сегодня стала задача сделать в одной программке табы не стандартного цвета, а немного другого. Вот я Вам и расскажу как я это делал.
Для начала вспоминаем мои старые посты про TabLayout — первая часть и вторая часть, эта часть должна быть третей, пусть так и будет :)
Для того что бы у нас были красивые табы нам нужно произвести три пункта действий:
1. Пишем код в OnCreate (), для определения исходного цвета фона для выбранных и не выбранных табов.
2. Для того что бы видно было какой таб сейчас активен нам нужно написать методonTabChanged(), вот давайте и напишем его:
3. Для полного вида оно в коде будет выглядеть вот так:
И вот что у нас получилось на выходе
Но бывает такое что хочется вместо обычной заливки вставить картинку! Давайте вставим картинки.
Вот эти мы будем вставлять в проект
1.
2.
заливаем их в res — drawable и заменяем в коде нужные
на
И тогда вместо этого говняного цвета у нас будет красивые зелено-голубые табы.
Спасибо за внимание, будут вопросы обращайтесь.
Для начала вспоминаем мои старые посты про TabLayout — первая часть и вторая часть, эта часть должна быть третей, пусть так и будет :)
Для того что бы у нас были красивые табы нам нужно произвести три пункта действий:
1. Пишем код в OnCreate (), для определения исходного цвета фона для выбранных и не выбранных табов.
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++) // цикл для полного прохождения по всем табам
{
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#8A4117")); // цвет табов
}
tabHost.getTabWidget().setCurrentTab(1);
tabHost.getTabWidget().getChildAt(1).setBackgroundColor(Color.parseColor("#8A4117")); //цвет табов
//говняно-коричневый :)
2. Для того что бы видно было какой таб сейчас активен нам нужно написать методonTabChanged(), вот давайте и напишем его:
@Override
public void onTabChanged(String tabId) {
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
{
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#8A4117"));
}
tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#C35817"));
}
3. Для полного вида оно в коде будет выглядеть вот так:
public class TabBarExample extends TabActivity implements OnTabChangeListener
{
/** Called when the activity is first created. */
TabHost tabHost;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tabHost = getTabHost();
tabHost.setOnTabChangedListener(this);
TabHost.TabSpec spec;
Intent intent;
intent = new Intent().setClass(this, FirstActivity.class);
spec = tabHost.newTabSpec("First").setIndicator("First").setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, SecondActivity.class);
spec = tabHost.newTabSpec("Second").setIndicator("Second").setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, ThirdActivity.class);
spec = tabHost.newTabSpec("Third").setIndicator("Third").setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, FourthActivity.class);
spec = tabHost.newTabSpec("Fourth").setIndicator("Fourth").setContent(intent);
tabHost.addTab(spec);
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
{
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#8A4117"));
}
tabHost.getTabWidget().setCurrentTab(1);
tabHost.getTabWidget().getChildAt(1).setBackgroundColor(Color.parseColor("#8A4117"));
}
@Override
public void onTabChanged(String tabId) {
// TODO Auto-generated method stub
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
{
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#C35817"));
}
tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#C35817"));
}
}
И вот что у нас получилось на выходе
Но бывает такое что хочется вместо обычной заливки вставить картинку! Давайте вставим картинки.
Вот эти мы будем вставлять в проект
1.
2.
заливаем их в res — drawable и заменяем в коде нужные
setBackgroundColor(Color.parseColor("#8A4117"));
на
setBackgroundResource(R.drawable.blue);//green
И тогда вместо этого говняного цвета у нас будет красивые зелено-голубые табы.
Спасибо за внимание, будут вопросы обращайтесь.
Комментариев нет:
Отправить комментарий