- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
每当我尝试绘制一个 ninepatch 图像和一个舞台时,最后调用的东西正在绘制。我曾尝试使用正交相机但没有成功。我尝试过的:
batch.setProjectionMatrix(camera.combined);
ninePatch.draw(batch, xPos, yPos, width, height);
stage.act(delta);
stage.draw();
camera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
stage.setCamera(camera)
编辑:代码
CreateQuiz 类
public class CreateQuiz implements Screen{
public CreateQuiz(Quiz quiz){
this.quiz = quiz;
}
private Quiz quiz;
private FallDownPanel fallDownPanel;
private OrthographicCamera camera;
@Override
public void render(float delta) {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
quiz.beginBatch();
fallDownPanel.render(quiz.getSpriteBatch(), delta);
quiz.endBatch();
}
@Override
public void resize(int width, int height) {
}
@Override
public void show() {
fallDownPanel = new FallDownPanel(FallDownPanel.START_LOWER_SIDE, 200, quiz.getTextureAtlas().createPatch("fallDownWindow"));
Stage stage = new Stage(fallDownPanel.getWidth(), fallDownPanel.getHeight(), false);
TextFieldStyle style = quiz.getGreenTextFieldStyle();
style.font.scale(-0.30f);
TextFieldQuiz test = new TextFieldQuiz("Hej åäö 123 !", style, 0, 2, 400, 16);
test.setTextFieldListener(new TextFieldListener() {
@Override
public void keyTyped (TextField textField, char key) {
if (key == '\n') {
textField.getOnscreenKeyboard().show(false);
}
}
});
stage.addActor(test);
Gdx.input.setInputProcessor(stage);
fallDownPanel.setStage(stage);
camera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
stage.setCamera(camera);
fallDownPanel.setCamera(camera);
}
@Override
public void hide() {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void dispose() {
}
}
FallDownPanel.class
public class FallDownPanel {
//With repeat
public FallDownPanel(int startSide, int size, NinePatch ninePatch){
Tween.registerAccessor(FallDownPanel.class, new FallDownPanelTween());
Tween.registerAccessor(Widget.class, new WidgetTween());
tweenManager = new TweenManager();
final int screenWidth = Gdx.graphics.getWidth();
final int screenHeight = Gdx.graphics.getHeight();
int target = 0;
int tweenType = 0;
if(startSide == START_LEFT_SIDE){
setSize(size, screenHeight);
xPos = -size;
yPos = 0;
target = 0;
tweenType = FallDownPanelTween.POSITION_X;
}
else if(startSide == START_RIGHT_SIDE){
setSize(size, screenHeight);
xPos = screenWidth;
yPos = 0;
target = screenWidth - size;
tweenType = FallDownPanelTween.POSITION_X;
}
else if(startSide == START_UPPER_SIDE){
setSize(screenWidth, size);
xPos = 0;
yPos = screenHeight + size;
target = screenHeight - size;
tweenType = FallDownPanelTween.POSITION_Y;
}
else if(startSide == START_LOWER_SIDE){
setSize(screenWidth, size);
xPos = 0;
yPos = -size;
target = 0;
tweenType = FallDownPanelTween.POSITION_Y;
}
Tween.to(this, tweenType, 1).target(target).start(tweenManager);
this.tweenType = tweenType;
this.startSide = startSide;
this.ninePatch = ninePatch;
}
private TweenManager tweenManager;
private NinePatch ninePatch;
private Stage stage;
private OrthographicCamera camera;
private float xPos, yPos;
private int width, height;
private int tweenType;
private int startSide;
public static final int START_LEFT_SIDE = 0, START_RIGHT_SIDE = 1, START_UPPER_SIDE = 2, START_LOWER_SIDE = 3;
public void render(SpriteBatch batch, float delta){
tweenManager.update(delta);
batch.setProjectionMatrix(camera.combined);
ninePatch.draw(batch, xPos, yPos, width, height);
stage.act(delta);
stage.draw();
}
public void setX(float x){
this.xPos = x;
}
public void setY(float y){
this.yPos = y;
}
public float getX(){
return xPos;
}
public float getY(){
return yPos;
}
public float getWidth(){
return width;
}
public float getHeight(){
return height;
}
private void setSize(int w, int h){
width = w;
height = h;
}
public Stage getStage() {
return stage;
}
public void setStage(Stage stage) {
this.stage = stage;
startWidgetTweens();
}
private void startWidgetTweens(){
float size = getShortestSide();
Array<Actor> actors = stage.getActors();
for(int i = 0; i < actors.size; i++){
Widget w = (Widget) actors.get(i);
Tween.to(w, tweenType, 1).target(0).start(tweenManager);
}
}
private float getShortestSide() {
if(startSide == START_LEFT_SIDE){
return width;
}
else if(startSide == START_RIGHT_SIDE){
return width;
}
else if(startSide == START_UPPER_SIDE){
return height;
}
else if(startSide == START_LOWER_SIDE){
return height;
}
return -1;
}
public void setCamera(OrthographicCamera camera) {
this.camera = camera;
}
}
最佳答案
始终确保您一次只有一个 Activity 的Renderer
。 渲染器
是:
批量
SpriteBatch
ShapeRenderer
Box2DDebugRenderer
如果我没记错的话ModelBatch
用于 3D我希望我没有忘记一个。
确保在为新的调用 begin()
之前始终为 Activity 的调用 end()
。
还要记住,Stage
有自己的 SpriteBatch
并且它会为此 SpriteBatch
调用 begin()
,如果您调用 stage.draw()
。因此,请确保在 stage.draw()
之前 end()
激活 Renderer
。
如果您需要 ShapeRenderer
或任何其他渲染器来绘制 Actor
(可能是调试原因),您必须结束 stage
的 SpriteBatch
,您可以通过 draw()
方法获得。确保在方法结束时再次begin()
。
希望这已经足够清楚了。
关于java - 无法同时绘制 ninepatch 图像和舞台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21318030/
我有一个业务需要在运行时创建 NinePatchDrawable 对象,也就是说,从服务器接收外部 .png 图像,它必须作为 9-patch 应用于按钮的背景(例如)。 我试图创建 NinePatc
我想在我的 Android 应用程序中添加嘈杂的背景。纹理非常完美,我可以创建一个 NinePatch 图像,但当我在应用程序中实际使用它时,它会拉伸(stretch)导致整个背景出现线条。知道实现这
我要实现这张图片 area textbox1 and textbox2 ninepatch able 我怎样才能 ninepatch 正是这个?? 最佳答案 android 9-patch 有一个限制
我正在阅读 https://github.com/libgdx/libgdx/wiki/Ninepatches 我的形象 toast_patch = new NinePatch(texture, 10
因此,我尝试使用图层列表将 map 图像与透明的 ninepatch Drawable 叠加。像这样: target http://f.cl.ly/items/2b1x3c3o0w3t1z0b2o2s
每当我尝试绘制一个 ninepatch 图像和一个舞台时,最后调用的东西正在绘制。我曾尝试使用正交相机但没有成功。我尝试过的: batch.setProjectionMatrix(camera.com
我的问题是: 我需要创建一个使用 NinePatch 创建的重新缩放的位图。 我当前的系统从 NinePatch 文件创建位图。然后将其送入 NinePatch(或 NinePatchDrawable
网络中是否有来自创建的 NinePatches 的任何中心点或集合? 我认为它们是真正花哨且有用的东西。即使你不是设计师,这也能给你带来很大的好处和外观。但我认为,如果互联网上有一些这方面的集合,那就
Android NinePatch图像似乎是带有额外信息的标准 .png 文件。是否有任何地方的格式规范,因为我希望能够在其他平台上实现它? 最佳答案 This是我在该主题上找到的最直接的链接。 关于
当我尝试以编程方式使用 9patch 背景时, 它仅在以下情况下有效:(场景 1)“拉伸(stretch)区域”(顶部/左侧)大于“内容填充区域”(底部/右侧) 但如果:(场景 2)填充比拉伸(str
网络中是否有来自创建的 NinePatches 的任何中心点或集合? 我认为它们是真正花哨且有用的东西。即使你不是设计师,这也能给你带来很大的好处和外观。但我认为,如果互联网上有一些这方面的集合,那就
我对我的 Android 应用程序有一个要求,即图形上的部分应该是可定制的,方法是从服务器端检索新的颜色和图像。其中一些图像是九 block 图像。 我找不到创建和显示这些 9-patch 图像(已通
我有一个 9 补丁可绘制的 XML 格式。当我尝试使用 BitmapFactory.decode 从中获取位图时,它返回 null 。无论如何可以从该资源获取位图吗? nine_patch.xml:
我正在使用 libgdx 制作一个简单的游戏。我有一个 TextureAtlas,它有我正在尝试使用的 ninepatch: 图片保存为menu.9.png 我正在使用以下代码: Image bg =
我正在测试使用 Stage 作为带有简单按钮的主菜单,使用 NinePatch 作为按钮背景。 设置此功能的代码如下所示: NinePatch 文本按钮设置 NinePatch btnNormal9
我需要为我的新 Android 应用程序绘制位图。由于我的内容 View 设置为我创建的 Game-Panel 类。我想通过位图显示图像。只是因为它比其他任何事情都更方便、更容易做。根据我从研究中收集
今天我试着让我的 ListView 更动态一点。所以我创建了一个白色的 ninepatch-image 并使用 .setColorFilter 方法添加了一个滤色器。那不是问题。但是在应用这个之后,每
有没有办法在 android 上以编程方式更改 9-patch 图像 (png) 的颜色?我知道如何使用位图执行此操作,但不知道如何使用 9-patch ... 感谢您帮助我。 问候吉姆 最佳答案 N
我正在创建一些日历 View ,我想做的是为可点击的 LineairLayout 创建背景。 因此我创建了一个带有两张图片的 StateListDrawable: 背景图片 按下项目时的图像 到目前为
我想从 SD 或 Assets 中读取几个 NinePatch 图像,因此没有编译,而且我找不到可以完成这项工作的构造函数/工厂。我也尝试过 NinePatch 工具源代码,但它使用图像的内部结构来完
我是一名优秀的程序员,十分优秀!