【发布时间】:2014-12-01 22:09:33
【问题描述】:
我正在使用 NinePatchDrawable 创建一个图像,并尝试使用 rotateBy 方法简单地旋转它,但它并没有以某种方式旋转。我正在使用以下代码 sn-p:
TextureAtlas ninePatchAtlas = game.getAssetsInterface().getTextureAtlas(Constants.GAME_ATLAS);
AtlasRegion region = ninePatchAtlas.findRegion("drawPatch");
NinePatch ninePatch = new NinePatch(region, 59, 59, 59, 59);
NinePatchDrawable ninePatchDrawable = new NinePatchDrawable(ninePatch);
Image image = new Image(ninePatchDrawable);
image.setOrigin(image.getWidth() / 2, image.getHeight() / 2);
image.setPosition(200, 400);
image.setWidth(150);
image.rotateBy(45);
如果我在 Image 的构造函数上使用另一个 drawable 而不是 NinePatchDrawable,则旋转正在工作。有没有人遇到同样的问题?
【问题讨论】:
-
NinePatch 不支持旋转。您必须对其进行子类化并覆盖其绘制方法才能使其正常工作。 Image 仅支持在实现 TransformDrawable 的 Drawable 上旋转(其中 TextureRegionDrawable 是唯一的,除非您自己创建)。
-
在这些情况下,将其包装在表格中也可能会有所帮助,在其上使用 setTransform(true),然后旋转表格。