Drawable.setColorFilter在两个不同的Android版本上表现不同

时间:2015-04-16 17:13:34

标签: android android-layout android-tabs

我正在尝试使用StateListDrawable和Drawable.setColorFilter(int颜色,模式模式)创建标签栏。我正在使用一张白色图像,并根据状态(按下,聚焦)更改颜色。

以下是代码段: -

private static  StateListDrawable  getStateList(int ID) {
    int statePressed = android.R.attr.state_pressed;
    int stateSelected = android.R.attr.state_selected;
    StateListDrawable lStates = new StateListDrawable();

    Resources lResources = UconnectAccessApp.aa().getResources();

    Drawable lTabDisabled = lResources.getDrawable(ID).mutate();
    lTabDisabled.setColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY);
    lStates.addState(new int[] {-statePressed,-stateSelected}, lTabDisabled);


    Drawable lTabEnabled = lResources.getDrawable(ID).mutate();
    lTabEnabled.setColorFilter(Color.GREEN, PorterDuff.Mode.MULTIPLY);
    lStates.addState(new int[] {stateSelected}, lTabEnabled);
    lStates.addState(new int[] {statePressed}, lTabEnabled);

    return lStates;
}

一切都按预期工作,但仅适用于在Android 5.1上运行的Nexus 5,但不适用于其他设备(使用Android 4.1.2在Galaxy S 5上测试过)。

以后我会得到基本图像(白色),按下标签时颜色不会改变。

如果我遗漏了什么,请告诉我,为什么在不同的设备上有两种不同的行为。

感谢您的帮助。

0 个答案:

没有答案