如何更改android默认的eclipse actionbar选项卡背景?

时间:2014-06-13 14:55:29

标签: android tabs android-actionbar

我在eclipse文件中创建了新项目 - > new-> other-> android应用程序项目

在这个导航类型中我给了带有视图寻呼机的操作栏选项卡,我用操作栏自动创建带有标签的eclipse,我需要的是想要更改动作栏bg和标签bg和标签指示器bg,我已经改变了动作栏背景颜色没有问题,但我不知道更改操作栏选项卡背景颜色和默认选项卡指示蓝色?

这是我的代码。

public class MainActivity extends ActionBarActivity implements
    ActionBar.TabListener {

SectionsPagerAdapter mSectionsPagerAdapter;
ViewPager mViewPager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Set up the action bar.
    final ActionBar actionBar = getSupportActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    actionBar.setDisplayShowTitleEnabled(false);
    LayoutInflater mInflater = LayoutInflater.from(this);

    View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null);
    TextView mTitleTextView = (TextView) mCustomView.findViewById(R.id.title_text);
    String text = "<font color=#3e4093>Save</font> <font color=#ed3338>life</font>";
    mTitleTextView.setText(Html.fromHtml(text));
    actionBar.setCustomView(mCustomView);
    actionBar.setDisplayShowCustomEnabled(true);

    // Create the adapter that will return a fragment for each of the three
    // primary sections of the activity.
    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

    // Set up the ViewPager with the sections adapter.
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mSectionsPagerAdapter);
    mViewPager.setOffscreenPageLimit(2);
    mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
                @Override
                public void onPageSelected(int position) {
                    actionBar.setSelectedNavigationItem(position);
                }
            });
    for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
        actionBar.addTab(actionBar.newTab()
                .setIcon(mSectionsPagerAdapter.getIcon(i))
                .setTabListener(this));

    }
}

@Override
public void onTabSelected(ActionBar.Tab tab,
        FragmentTransaction fragmentTransaction) {
    mViewPager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabUnselected(ActionBar.Tab tab,
        FragmentTransaction fragmentTransaction) {
}

@Override
public void onTabReselected(ActionBar.Tab tab,
        FragmentTransaction fragmentTransaction) {
}

/**
 * A {@link FragmentPagerAdapter} that returns a fragment corresponding to
 * one of the sections/tabs/pages.
 */
public class SectionsPagerAdapter extends FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    public Drawable getIcon(int position) {

        switch (position) {
        case 0:
            return getResources().getDrawable(R.drawable.ic_home);
        case 1:
            return getResources().getDrawable(R.drawable.ic_info);
        case 2:
            return getResources().getDrawable(R.drawable.ic_more);
        }
        return null;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
        case 0:
            return new firstTab();
        case 1:
            return new secondTab();
        case 2:
            return new ThirdTab();
        }
        return null;
    }

    @Override
    public int getCount() {
        // Show 3 total pages.
        return 3;
    }
}}

2 个答案:

答案 0 :(得分:0)

以此为参考

How do I change the background color of the ActionBar of an ActionBarActivity using XML?

您的样式文件应该如下所示

<resources>

    <!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
    -->
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light">
        <!--
        Theme customizations available in newer API levels can go in
        res/values-vXX/styles.xml, while customizations related to
        backward-compatibility can go here.
        -->
    </style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
         <!-- All customizations that are NOT specific to a particular API-level can go here. -->
         <item name="android:actionBarStyle">@style/MyActionBar</item>
    </style>

    <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">#1ADEDB </item>
    </style>

</resources>

更改标签背景颜色 http://www.technotalkative.com/android-change-tab-bar-background-color/

这个工具似乎很适合为动作栏生成样式。

http://jgilfelt.github.io/android-actionbarstylegenerator/

答案 1 :(得分:-1)

我已经使用过此链接并使用此链接我已经更改了操作栏选项卡背景颜色,非常有用,谢谢@BlaShadow

更改标签背景颜色http://www.technotalkative.com/android-change-tab-bar-background-color/