7

チェックボックスの画像サイズを管理する方法がわかりません。もちろん、テクスチャアトラスで異なるサイズの画像を作成して適切なものを取得することは可能ですが、それはしたくありません。

これが私のコードです:

AtlasRegion checkboxOn = AssetsHelper.textures.findRegion("checked");
AtlasRegion checkboxOff = AssetsHelper.textures.findRegion("unchecked");
CheckBoxStyle checkBoxStyle = new CheckBoxStyle();
checkBoxStyle.font = AssetsHelper.font66yellow;
checkBoxStyle.checkboxOff = checkboxOff;
checkBoxStyle.checkboxOn = checkboxOn;
CheckBox cbSound = new CheckBox(" Sound", checkBoxStyle);

cbSoundオブジェクトには、チェックボックスの画像をサイズ変更するようなメソッドはありませんが、getImage()メソッドはありますが、機能しないようです。これは機能していません:

cbSound.getImage().width = 120;
cbSound.getImage().height = 120;

参考までに:たとえば、私が画像を描きたいと思ったとき、私はそのようにしました:

batch.draw(textureRegion, 0, 0, widthIwant, heightIwant);

ただし、CheckBoxクラスでは、これだけがオーバーライドされます(幅と高さを設定しないでください)。

public void draw (SpriteBatch batch, float parentAlpha) {
    image.setRegion(isChecked ? style.checkboxOn : style.checkboxOff);
    super.draw(batch, parentAlpha);
}

質問:チェックボックス画像の幅と高さを変更するにはどうすればよいですか?

前もって感謝します。

4

2 に答える 2

8

libgdxウィジェットは、画像の描画にドローアブルを使用しています。ドローアブルは、そのセルに合わせて自動的に拡大縮小されます。したがって、画像サイズを変更するには、セルサイズを変更します。

cbSound.getCells().get(0).size(widht, height);

より良い結果を得るには、ドローアブルに9つのパッチを使用する必要があります。

于 2013-03-20T18:56:42.290 に答える
0

画像スケーリングの種類を設定する必要があります。また、メソッドgetImageCellは、メソッドgetCells()。get(0)よりも正確です。デフォルトはnoneです。

CheckBox soundCB = new CheckBox("Sound", uiskin);
soundCB.getImage().setScaling(Scaling.fill);
soundCB.getImageCell().size(GameConfig.WIDTH/6);
soundCB.left().pad(PAD);
soundCB.getLabelCell().pad(PAD);
//...
content.add(soundCB).width(GameConfig.WIDTH/1.5f).row(); //add to table
于 2019-07-23T14:28:32.440 に答える