私はHieroで構築されたビットマップフォントを持っています。これはScene2d Labelsで使用しています。LibGDX Label lineHeightを一時的に変更することはできますか?
1つのLabelインスタンスでは、フォントのlineHeight値を小さくする必要がありますが、(同じフォントを使用している)他のラベルはそのままにしておき、フォントのデフォルトのlineHeightを保持する必要があります。
私は単にこのように値を調整しようとしました:
label.getStyle().font.getData().setLineHeight(localReducedValue);
はしかし、これはどこでも、すべてのラベルを変更した - 振り返ってみると、論理的なようである、私はLabelStyle自体を変更していますので、 。
この時点で、私は2つの解決策を参照して残念ながらlabel.setLineHeight(localReducedValue)
のようなものは、存在しません:
- を、フォントのコピーを作成し、私は必要な値にそのlineHeightを設定して、別のLabelStyleを作成そのフォントでまたは
- setLineHeightを実装する自分用のカスタムラベルを作成します。
最初のアイデアは無駄だと思いますが、2番目のアイデアは少し複雑かもしれません。そのため、ラベルに一時的な高さを実現する簡単な方法があります。
//skin is the skin that you use
Label myLabel = new Label(text, new LabelStyle(skin.get(LabelStyle.class)));
をそして、あなたはすべてのラベルに影響を与えずに、スタイルを変更することができます。
これは私のために働いていないようです。この新しいLabelStyleのlineHeightを変更すると、元のフォント自体が変更されます。 – Wabbitseason
'label.getStyle()。font.getData()。setLineHeight(localReducedValue);'を使うとします。これにより、基礎となるフォントが変更されてどこでも変更されます。別のフォントを作成し、それを 'LabelStyle'に渡す必要があるので、新しいフォントだけを変更します。 – Andy
別のフォントを作成することが私の最初のアイデアでした。 :) – Wabbitseason