我正在尝试更改我的ViewPager指示器的颜色。我在这里读到它使用九补丁,但我不知道在哪里可以找到它。这是我用于创建 ViewPager 的相关 Java 代码。
/**
* On swiping the ViewPager make respective tab selected
**/
private void initializeViewPagerListener() {
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// on changing the page
// make respected tab selected
actionBar.setSelectedNavigationItem(position);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
/**
* Creates the tab portion of the ViewPager
*/
private void initializeTabs() {
viewPager = (ViewPager) findViewById(R.id.pager);
actionBar = getActionBar();
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Adding Tabs
for (String tab_name : tabs) {
actionBar.addTab(actionBar.newTab().setText(tab_name)
.setTabListener(this));
}
}
我创建了一个自定义的ViewPager指示器(nexus-5启动器样式),其中包含可用于更改圆圈颜色的自定义属性
https://github.com/bigsolom/AndroidViewPagerIndicator
来自以下链接的ViewPagerIndicator文档:
安卓视图寻呼指示器
您可以设置此项:在视图寻呼机下方添加自定义视图,可用属性包括:指定圆半径的半径和指定圆圈颜色的颜色
<com.efoad.views.ViewPagerIndicator
android:id="@+id/viewpager_indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="5dp"
android:padding="5dp"
custom:radius="3dp"
custom:color="@android:color/darker_gray" />
PagerTabStrip pagerTabStrip = (PagerTabStrip) findViewById(R.id.pager_title_strip);
pagerTabStrip.setTabIndicatorColor(Color.RED);
在你的 java 类上写下这一行
indicator.setFillColor(Color.RED);
您使用的是哪种ViewPager?来自支持库或来自哪个安卓版本?
如果是android.support.v4.view.ViewPager,你应该只添加一行代码:
viewPager.getChildAt(0).setBackgroundResource(R.color.blue);
并在res/values/color.xml文件中定义蓝色(或您选择的任何其他颜色):
<color name="blue">#015599</color>
这应该会有所帮助。