Prefácio
Implemente um menu onde o menu aparece da parte superior e desaparece de baixo. Quando o topo aparece, há um processo de agitação para cima e para baixo. Quando o fundo desaparecer, deslize para cima primeiro, deslize para baixo e depois desapareça.
As renderizações são as seguintes:
Introduzir dependências
implementação 'com.android.support:support dinamic-animation:27.1.1'1
A criação de Springanimation requer três parâmetros.
• Visualização animada
• Tipo de dinâmica
AlpharoTationRotation_xrotation_yscale_xscale_yscroll_xscroll_ytranslation_xtranslation_ytranslation_zxyz
O diagrama de GIF acima é um diagrama de visualização com tradução dinâmica. Agora definimos o parâmetro como rotação.
SPRINGANIMATION SIGNUPBBTNANIMY = NOVA SPRINGANIMATION (RECTRINGLAYOUT, Dynamicanimation.rotation, 0);
As renderizações são as seguintes:
- O local final para criar uma animação
O deslocamento em relação à posição atual da visualização.
Springforce
Para tornar a animação suave e elástica, os parâmetros relacionados ao Springforce precisam ser definidos.
- rigidez
Isto é, rigidez. Quanto maior esse valor, maior a parte interna produzia, menos óbvio o efeito elástico na animação e mais rápido o movimento.
Riftness_highstiffness_lowstiffness_mediumstiffness_very_low
O método de configuração é:
SignUpBtnanimy.getspring (). SetStiffness (springforce.stiffness_low);
• Razão de amortecimento de amortecimento
Isto é, a taxa de amortecimento, quanto maior esse valor, mais rápido o efeito da mola para
DAMPING_RATIO_HIGH_BOUNCYDAMPING_RATIO_LOW_BOUNCYDAMPING_RATIO_MEDIUM_BOUNCYDAMPING_RATIO_NO_BOUNCY
O método de configuração é:
SignUpBtnanimy.getspring (). SetDampingratio (springforce.damping_ratio_medium_bouncy);
Startvelocity
Velocidade de inicialização, a velocidade padrão é 0 e a unidade é PX/segundo.
O código geral é o seguinte:
• Mostre a animação do menu
public void showanimal () {setvisibility (view.visible); SPRINGANIMATION SIGNUPBBTNANIMY = NOVA SPRINGANIMATION (RECTRINGLAYOUT, Dynamicanimation.Translation_Y, 0); SignUpBtnanimy.getspring (). SetStiffness (springforce.stiffness_low); SignUpBtnanimy.getspring (). SetDampingratio (springforce.damping_ratio_medium_bouncy); SignUpBtnanimy.SetStartvelocity (5000); SignUpBtnanimy.Start (); }• Ocultar animação do menu
public void hideanimal () {height = (screentools.getScreenHeight (getContext ()) - restrintlayout.getHight ()) / 2 + restrintlayout.getHeight () + screentools.dp2px (getContext (), 50); Objectanimator animator = objectanimator.offloat (restantlayout, "tradução", 0f, -100f, altura); animator.setDuration (600); animator.setInterpolator (new DeCelerEInterpolator ()); animator.addlistener (novo animatorListeRADAPTER () {@Override public void onanimationEnd (animador animação) {super.onanimationend (animação); setvisibility (desaparecido); relayout ();}}); animator.start (); } Código fonte: https://github.com/lsnumber1/studyspringanimation
Resumir
O acima é que o menu de implementação da Springanimation aparece da parte superior e desaparece de baixo. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!