Ekranlar arasında keçid animasiyası üçün nə etmək lazımdır?
sobes.tech Süni İntellekt
AI-dan cavab
Android-da ekranlar arasında keçid animasiyasını həyata keçirmək üçün bir neçə yanaşma mövcuddur:
-
Fəaliyyət Animasiya (Activity Animations): Mövzular və ya proqramlaşdırma ilə təyin edilir. Fəaliyyətlər üçün standart giriş və çıxış animasiyalarını təyin etməyə imkan verir.
override fun startActivity(intent: Intent) { super.startActivity(intent) overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left) } override fun finish() { super.finish() overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right) }Animasiya faylları (məsələn,
res/anim/slide_in_right.xml):<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="100%" android:toXDelta="0%" android:duration="@android:integer/config_shortAnimTime" /> </set> -
Fragment Animations: Fragment tranzaksiyası zamanı təyin edilir.
supportFragmentManager.beginTransaction() .setCustomAnimations(R.anim.fade_in, R.anim.fade_out, R.anim.fade_in, R.anim.fade_out) .replace(R.id.container, fragment) .commit() -
Paylaşılan Element Transitions: Bir və ya bir neçə View-un ekranlar arasında keçidini animasiya etmək üçün istifadə olunur, davamlı effekt yaradır. Transition dəstəyini temada aktivləşdirmək tələb olunur.
Mənbə fəaliyyətində:
val options = ActivityOptionsCompat.makeSceneTransitionAnimation( this, sharedView, // Animasiya üçün View ViewCompat.getTransitionName(sharedView) // Bağlantı üçün ad ) startActivity(intent, options.toBundle())Qəbul edən fəaliyyətində:
// onCreate və ya onViewCreated metodunda (fragmentlər üçün) supportPostponeEnterTransition() // Giriş animasiyasını təxirə sal, Views hazır olana qədər // Sonra, Views hazırdırsa (məsələn, şəkil yükləmə dinləyicisində): supportStartPostponedEnterTransition()Hər iki ekranın XML dizaynında:
<ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:transitionName="image_transition" /> <!-- Bağlantı üçün ad --> -
Component Animations (Navigation Component): Əgər Navigation Component istifadə olunursa, keçid animasiyaları birbaşa naviqasiya qrafikində təyin edilə bilər:
<action android:id="@+id/action_fragmentA_to_fragmentB" app:destination="@id/fragmentB" app:enterAnim="@anim/slide_in_right" app:exitAnim="@anim/slide_out_left" app:popEnterAnim="@anim/slide_in_left" app:popExitAnim="@anim/slide_out_right" />
Yöntəm seçimi istifadə olunan memarlıq (Activity, Fragments, Navigation Component) və istənilən effektə bağlıdır.