当我从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));
任何人都可以建议我:)。
答案 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实例。