Kata pengantar
Terapkan menu di mana menu muncul dari atas dan kemudian menghilang dari bawah. Ketika bagian atas muncul, ada proses gemetar ke atas dan ke bawah. Saat bagian bawah menghilang, geser ke atas terlebih dahulu, lalu geser ke bawah lalu menghilang.
Rendering adalah sebagai berikut:
Memperkenalkan dependensi
Implementasi 'com.android.support:support-dinamik-animasi:27.1.1'1
Membuat springanimation membutuhkan tiga parameter.
• Tampilan animasi
• Jenis Dynamicanimation
AlpharotationRotation_xrotation_yscale_xscale_yscroll_xscroll_ytranslation_xtranslation_ytranslation_zxyz
Diagram GIF di atas adalah diagram pratinjau dengan Dynamicanimation Translation_y. Sekarang kami mengatur parameter ke rotasi.
Springanimation rockupbtnanimy = springanimation baru (ConseptaintLayout, dynamicanimation.rotation, 0);
Rendering adalah sebagai berikut:
- Lokasi akhir untuk membuat animasi
Offset relatif terhadap posisi tampilan saat ini.
Springforce
Untuk membuat animasi halus dan kenyal, parameter terkait Springforce perlu diatur.
- Kekakuan
Yaitu kekakuan. Semakin besar nilai ini, semakin besar bagian dalam yang dihasilkan, semakin tidak jelas efek elastis dalam animasi, dan semakin cepat gerakan.
Kekakuan_highstiffness_lowstiffness_mediumstiffness_very_low
Metode pengaturannya adalah:
rockupbtnanimy.getspring (). setStiffness (springforce.stiffness_low);
• rasio redaman redaman redaman
Yaitu, rasio redaman, semakin besar nilai ini, semakin cepat efek pegas berhenti
Damping_ratio_high_bouncydamping_ratio_low_bouncydamping_ratio_medium_bouncydamping_ratio_no_bouncy
Metode pengaturannya adalah:
rockupbtnanimy.getspring (). setDampingRatio (springforce.damping_ratio_medium_bouncy);
StartVelocity
Kecepatan startup, kecepatan default adalah 0, dan unitnya px/detik.
Kode keseluruhan adalah sebagai berikut:
• Tampilkan animasi menu
public void showanimal () {setVisability (view.visible); Springanimation rockupbtnanimy = springanimation baru (ConstrainLayout, dynamicanimation.translation_y, 0); rockupbtnanimy.getspring (). setStiffness (springforce.stiffness_low); rockupbtnanimy.getspring (). setDampingRatio (springforce.damping_ratio_medium_bouncy); SignupBtNanimy.SetStartVelocity (5000); rockupbtnanimy.start (); }• Sembunyikan animasi menu
public void hideeanimal () {height = (screenools.getscreenHeight (getContext ()) - ConseptaintLayout.getHeight ()) / 2 + ConseptaintLayout.getHeight () + screentools.dp2px (getContext (), 50); ObjectAnimator animator = ObjectAnimator.Offloat (ConstrainLayout, "Translationy", 0F, -100F, Tinggi); animator.setDuration (600); animator.setInterpolator (new DecelerateInterpolator ()); animator.addlistener (animatorListenerAdapter baru () {@Override public void onanimationend (animator animasi) {super.onanimationend (animasi); setVisibility (lewat); relayout ();}}); animator.start (); } Kode Sumber: https://github.com/lsnumber1/studyspringanimation
Meringkaskan
Di atas adalah menu implementasi springanimation muncul dari atas dan menghilang dari bawah. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!