Да, но вам нужно будет сделать это вручную.
Просто переопределить Label
и переопределить его метод animate()
. Я не пробовал это, но что-то, как это может работать для всех ваших требований:
Label tickeredLabel = new Label(myText) {
Motion tickeringMotion;
long pauseTime = System.currentTimeMillis();
public boolean animate() {
long currentTime = System.currentTimeMillis();
// wait 3 seconds for tickering
if(currentTime - pauseTime < 3000) {
return false;
}
// use ease in/out motion over 5 seconds
if(tickeringMotion == null) {
tickeringMotion = Motion.createEaseInOutMotion(0, getStringWidth(getStyle().getFont(), 5000);
tickeringMotion.start();
} else {
// when motion is finished return to 3 second delay
if(tickeringMotion.isFinished()) {
tickeringMotion = null;
pauseTime = System.currentTimeMillis();
}
}
setShiftText(tickeringMotion.getValue());
return changed;
}
};
сглаживать tickering далее просто заставить его двигаться один пиксель за один раз специально
Я хотел бы предложить для будущих случаев, вы разделяете такие вопросы на 3 вопроса, поскольку, если разработчик не знает ответа на один из них, он не может публиковать ответ на вопрос, который он знает. –