Porém eu gostaria de fazer com que antes de remover do desktop a notificação fizesse aquela animação de “ir para a esquerda” como no Android por exemplo. Alguém sabe se isso seria possível?
Olá Amigo
Tem Um Cana no youtube chamado Genuine Coder, ele fala tudo sobre isso
Da uma olhada la o link é: https://www.youtube.com/channel/UCCXbhmjID-T2I0KfuDPbi6A
Se ele não tiver um video ensinando direto como você faz, com outros videos você vai pegar uma base, como a tela de notificações que ele fez, é bem legal!
Espero ter ajudado, qualquer coisa me chame
Thallysson
Valeu pela dica, é um canal bem bacana, eu vou procurar na playlist de animation e ver se encontro uma solução por lá.
Nunca pensei que fosse tão simples, eu implementei, aparentemente está funcionando, porém está MUITO rápido. Eu já alterei todas as propriedades de mile segundos que eu vi na classe mas continua rápido, mas rápido que não dá nem pra perceber a animação.
Andrauss
Já tentou a propriedade Duration? Ou melhor CycleDuration
Thallysson
Até com valores altos como esses eu não consigo visualizar a animação:
Explicando:
Delay é o tempo de espera para executar a animação.
Duration é o tempo de execução da animação.
Você deve ter alterado os keyframes.
Thallysson
Mas mesmo alterando o Duration eu não consigo ver a diferença. Agora eu percebi que eu estava utilizando o exemplo do FadeInleftTransition ao invés de FadeOutLeftTransition, porém dá na mesma depois de mudar.
importcom.gluonhq.charm.glisten.animation.CachedTimelineTransition;importjavafx.animation.KeyFrame;importjavafx.animation.KeyValue;importjavafx.animation.Timeline;importjavafx.scene.Node;importjavafx.util.Duration;/** * Animate a fade out left effect on a node * * Port of FadeOutLeft from Animate.css http://daneden.me/animate by Dan Eden * * {@literal @}keyframes fadeOutLeft { * 0% { * opacity: 0; * transform: translateX(0); * } * 100% { * opacity: 1; * transform: translateX(-20px); * } * } * * @author Jasper Potts */publicclassFadeOutLeftTransitionextendsCachedTimelineTransition{/** * Create new FadeOutLeftTransition * * @param node The node to affect */publicFadeOutLeftTransition(finalNodenode){super(node,newTimeline(newKeyFrame(Duration.millis(0),newKeyValue(node.opacityProperty(),1,WEB_EASE),newKeyValue(node.translateXProperty(),0,WEB_EASE)),newKeyFrame(Duration.millis(1000),newKeyValue(node.opacityProperty(),0,WEB_EASE),newKeyValue(node.translateXProperty(),-20,WEB_EASE))));setCycleDuration(Duration.seconds(3));setDelay(Duration.seconds(0.2));}@Overrideprotectedvoidstopping(){super.stopping();node.setTranslateX(0);// restore default}}
Resultado:
Andrauss1 like
A animação é executada em background, quando vc remove o node do pane a animação continua rodando mas vc não vê. Faça o seguinte:
Adicione uma ação para quando a animação terminar com setOnFinished, essa ação deve ser remover o componente. Isso resolve.