android TabLayout更改选定的选项卡图标的颜色显示暗淡的白色

时间:2016-02-22 15:39:19

标签: android android-tablayout porter-duff

我使用了标签布局和android设计库的图像。当所选标签图标的颜色变为白色时,白色不能完美显示,但会显示暗淡的白色。如何在选定的标签上显示完美的白色?

slidingTabLayout.getTabAt(0).setIcon(R.drawable.ic_tab_recent);
slidingTabLayout.getTabAt(1).setIcon(R.drawable.ic_tab_profile);
slidingTabLayout.getTabAt(2).setIcon(R.drawable.ic_tab_contacts);
slidingTabLayout.getTabAt(3).setIcon(R.drawable.ic_tab_settings);

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


slidingTabLayout.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("#a8a8a8"), PorterDuff.Mode.SRC_IN);
    }

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

    }
});

1 个答案:

答案 0 :(得分:2)

我通过更改所有颜色(Color.WHITE,Color.BLUE)和drawable来检查。它对我没用。后来,我检查了它使用的颜色是棕色。在改变了可绘白色的颜色后,它对我有用。

由于PorterDuff.Mode.SRC_IN,它正在绘制棕色drawable。有关PorterDuff.Mode

的详细信息