色调一个可绘制的前棒棒糖

时间:2014-12-05 05:53:24

标签: java android

所以我试图在运行时为一些Drawable着色,为了实现这一点,我使用自定义的Resources类来返回Drawable着色。

类似的东西:

public final class MyResources extends Resources
{
    public Drawable getDrawable(int resId) throws NotFoundException {
        Drawable drawable = super.getDrawable(resId);
        drawable.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
        return drawable;
    }
}

当drawable设置为widget时,在EditText,Buttons等一些小部件中,drawable会发生变异,过滤器会丢失。

真实代码位于:https://github.com/SiegenthalerSolutions/QuantumPaper/blob/master/library/src/main/java/me/siegenthaler/quantum_paper/QuantumResources.java

我想要的是防止第二次设置drawable :( Hackish)

https://github.com/SiegenthalerSolutions/QuantumPaper/blob/master/library/src/main/java/me/siegenthaler/quantum_paper/interceptor/SimpleBackgroundInterceptor.java

1 个答案:

答案 0 :(得分:0)

试试我的图书馆。我为自定义EditText实现了一个特殊的drawable to tint drawables。这也适用于所有其他情况。

https://github.com/rekire/TintedDrawable