Mida tuleb teha ekraanide vaheli animatsiooni jaoks?
sobes.tech AI
Vastus AI-lt
Androidis saab ekraanide vaheliste üleminekute animatsioone rakendada mitmel viisil:
-
Aktiviteetide (Activity) animatsioonid: Määratletakse teemades või programmeerides. Need võimaldavad määrata vaikimisi sisenemis- ja väljumisanimatsioone aktiivsustele.
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) }Animatsioonifailid (näiteks
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> -
Fragmentide (Fragment) animatsioonid: Määratletakse fragmentide tehingu ajal.
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() -
Jagatud elementide (Shared Element Transitions) animatsioonid: Võimaldavad animatsioonida ühe või mitme View üleminekut ekraanide vahel, luues sujuvuse efekti. Nõuab toetuse transition lubamist teemal.
Algaktiviteedis:
val options = ActivityOptionsCompat.makeSceneTransitionAnimation( this, sharedView, // View animatsiooniks ViewCompat.getTransitionName(sharedView) // Nimi ühendamiseks ) startActivity(intent, options.toBundle())Vastuvõtvas aktiivsuses:
// onCreate või onViewCreated meetodis (fragment) supportPostponeEnterTransition() // Viivitada sisenemise animatsiooni, kuni View-id on valmis // Kui View-id on valmis (näiteks pildi laadimisel): supportStartPostponedEnterTransition()XML-i paigutuses mõlema ekraani:
<ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:transitionName="image_transition" /> <!-- Nimi ühendamiseks --> -
Komponendi animatsioonid (Navigation Component): Kui kasutatakse Navigation Component-i, saab üleminekute animatsioone määrata otse navigeerimisdiagrammis.
<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" />
Valik sõltub kasutatavast arhitektuurist (Activity, Fragments, Navigation Component) ja soovitud efektist.