libGDX:Image中的Drawable不能改变它的颜色

时间:2017-05-25 02:25:44

标签: java colors libgdx

当我从Drawable获得Image来自一个白色像素(1×1)Texture时,其工作正常,但我无法更改其颜色。为什么呢?

public static Drawable getDrawable(Texture texture, Color color) {
    Image image = new Image(texture);
    image.setColor(color);
    return image.getDrawable();
}

我打电话的时候:

// can't change color!! ==> still white (default)
getDrawable(pixel, new Color(0, 1f, 0, 0.5f));

任何人都可以建议我:)。

1 个答案:

答案 0 :(得分:1)

支持拥有自己颜色的唯一Drawable类型是SpriteDrawable和NinePatchDrawable,这是因为它们包含Sprites和NinePatches,它们都有颜色参数。

public static Drawable getTintedDrawable(Texture texture, Color color) {
    Sprite sprite = new Sprite(texture);
    sprite.setColor(color);
    return new SpriteDrawable(sprite);
}

如果你有一个现有的TextureRegionDrawable或NinePatchDrawable,你可以在其上调用tint()来生成一个具有你想要的颜色的新Drawable实例。