设置颜色标签主机指示灯

时间:2014-12-22 20:32:06

标签: android android-tabhost

如何设置标签主机指示器颜色的颜色我要将浅蓝色默认颜色更改为红色。

enter image description here

当我以编程方式制作标签时,我需要以编程方式进行此操作。

我做了一些研究并查看了这个例子,但它对我不起作用。采用编程方法。

TabWidget current tab bottom line color

由于

1 个答案:

答案 0 :(得分:1)

您可以通过编程方式执行此操作,甚至可以根据需要更改颜色,方法是按照您提到的linked question中的解决方案,再添加ColorFilter来调整颜色。

所以:

  1. 创建适当的drawable。如其中一个答案所述,最简单的方法是使用https://jgilfelt.github.io/android-actionbarstylegenerator/
  2. 为每个可绘制的密度添加tab_indicator_ab_example.xml(在drawable中)以及6个相关的png文件(tab _ * .png)。
  3. 创建标签后,使用迭代TabWidget子视图的代码设置背景,但是:
  4. 不是按原样设置可绘制,而是使用颜色过滤器将颜色更改为所需的颜色。
  5. 而不是这段代码:

    for(int i = 0; i < widget.getChildCount(); i++) {
        ... /* same as before */
    
        v.setBackgroundResource(R.drawable.your_tab_selector_drawable);
    }
    

    写下这样的东西:

    for(int i = 0; i < widget.getChildCount(); i++) {
        ... /* same as before */
    
        Drawable d = getResources().getDrawable(R.drawable.tab_indicator_ab_example);
        d.setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN);
        v.setBackgroundDrawable(d);
    }