Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android选项卡图标颜色不清晰_Android_Android Tablayout_Android Icons - Fatal编程技术网

Android选项卡图标颜色不清晰

Android选项卡图标颜色不清晰,android,android-tablayout,android-icons,Android,Android Tablayout,Android Icons,我正在尝试做颜色选择器,当标签选择他的颜色将是白色,当取消选择-其他颜色。为此,我使用setColorFilter。但选中时,选项卡图标颜色不是清晰的白色。使用图像资源添加图像,并选择自定义颜色-白色。我必须把它弄清楚。任何帮助,任何想法,谢谢 这是我的密码 private int[] tabIcons = { R.drawable.ic_no, R.drawable.busket, R.drawable.ic_tab_aksia,

我正在尝试做颜色选择器,当标签选择他的颜色将是白色,当取消选择-其他颜色。为此,我使用setColorFilter。但选中时,选项卡图标颜色不是清晰的白色。使用图像资源添加图像,并选择自定义颜色-白色。我必须把它弄清楚。任何帮助,任何想法,谢谢


这是我的密码

private int[] tabIcons = {
        R.drawable.ic_no,
        R.drawable.busket,
        R.drawable.ic_tab_aksia,
        R.drawable.ic_tab_menu
};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_icon_tabs);

    toolbar = (Toolbar) findViewById(R.id.toolbar);
    toolbar.setTitleTextColor(Color.WHITE);
    setSupportActionBar(toolbar);

    frameLayout = (FrameLayout) findViewById(R.id.frameLayout);



    adapter = new ViewPagerAdapter(getSupportFragmentManager());
    viewPager = (ViewPager) findViewById(R.id.viewpager);
    viewPager.setAdapter(adapter);
    viewPager.addOnPageChangeListener(pageChangeListener);
    viewPager.setOffscreenPageLimit(10);
    tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);
    setupTabIcons();


}


private OnPageChangeListener pageChangeListener = new OnPageChangeListener() {

    int currentPosition = 0;

    @Override
    public void onPageSelected(int newPosition) {


            FragmentLifecycle fragmentToHide = (FragmentLifecycle) adapter.getItem(currentPosition);
            fragmentToHide.onPauseFragment();

            FragmentLifecycle fragmentToShow = (FragmentLifecycle) adapter.getItem(newPosition);
            fragmentToShow.onResumeFragment();



        currentPosition = newPosition;

    }

    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) { }

    public void onPageScrollStateChanged(int arg0) { }
};



private void setupTabIcons() {


        tabLayout.getTabAt(0).setIcon(tabIcons[0]);
        tabLayout.getTabAt(1).setIcon(tabIcons[1]);
        tabLayout.getTabAt(2).setIcon(tabIcons[2]);
        tabLayout.getTabAt(3).setIcon(tabIcons[3]);

        tabLayout.getTabAt(0).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN);
        tabLayout.getTabAt(1).getIcon().setColorFilter(Color.parseColor("#F0F0F0"), PorterDuff.Mode.SRC_IN);
        tabLayout.getTabAt(2).getIcon().setColorFilter(Color.parseColor("#F0F0F0"), PorterDuff.Mode.SRC_IN);
        tabLayout.getTabAt(3).getIcon().setColorFilter(Color.parseColor("#F0F0F0"), PorterDuff.Mode.SRC_IN);

        tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                tab.getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN);

            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
                tab.getIcon().setColorFilter(Color.parseColor("#F0F0F0"), PorterDuff.Mode.SRC_IN);
            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });
public void setCurrentItem (int item, boolean smoothScroll) {
        viewPager.setCurrentItem(item, smoothScroll);
    }

使用
SlidingTabLayout

siliding_tabs.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
    @Override
    public int getIndicatorColor(int position) {
        return getResources().getColor(R.color.white);
    }               
});

使用
SlidingTabLayout

siliding_tabs.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
    @Override
    public int getIndicatorColor(int position) {
        return getResources().getColor(R.color.white);
    }               
});

我不需要改变指示灯的颜色!我不需要改变指示灯的颜色!尝试在可绘制的图标上使用方法
mutate()
,如下
tab.getIcon().mutate().setColorFilter(Color.WHITE,PorterDuff.Mode.SRC_IN)。这可能会解决您的问题。:)尝试在可绘制的图标上使用方法
mutate()
,如下
tab.getIcon().mutate().setColorFilter(Color.WHITE,PorterDuff.Mode.SRC_IN)。这可能会解决您的问题。:)