Изменить цвет шрифта TextButton при нажатии?

Я прочитал некоторые учебники и документацию по возможностям пользовательского интерфейса scene2d, но я не могу понять, как работают скины. Я просто хочу TextButton, который меняет цвет при нажатии. Мне удалось изменить фон TextButton, но я этого не хотел. У него не должно быть фона.

Буду очень признателен, если кто-нибудь сможет привести пример того, как это можно сделать. Это кажется очень простым, так что я думаю, что я упускаю что-то очевидное здесь. Если речь идет о скине, напишите это программно.

Спасибо.

2 ответа

Решение

Оказывается, все было так просто, как я и думал, просто не сработало, когда я попробовал в первый раз.

При определении TextButtonStyle вы можете назначить downFontColor цвет, которым вы хотите, чтобы ваш текст был при нажатии. Вы также можете назначить checkedFontColor цвет, который вы хотите, чтобы текст переключался при нажатии.

Пример:

TextButtonStyle textButtonStyle = new TextButtonStyle();
textButtonStyle.font = someBitmapFont;
textButtonStyle.fontColor = Color.WHITE;
textButtonStyle.downFontColor = Color.BLACK;
//Optional color to toggle between when pressed
textButtonStyle.checkedFontColor = Color.GREEN;
final TextButton textButton = new TextButton("Text", textButtonStyle);

Это создаст белую текстовую кнопку, которая становится черной при нажатии. Когда мышь или сенсор отпущены, он станет зеленым или белым, в зависимости от состояния переключателя.

Вы также можете подкрасить его, но эффект зависит от основного цвета (если он белый, то он работает отлично, иначе зависит). Во всяком случае, это сделано так:

button.getLabel().setColor(myColor);
Другие вопросы по тегам