تولید یک صحنه متحرک (Motion Scene) در اندروید استودیو
تولید یک صحنه متحرک (Motion Scene)
ممکن میباشد متوجه گردیده باشید که در طول تعریف و تمجید لیآوت هیچ قیدی به ویجت ImageView اضافه نکردیم. استدلال این دستور آن میباشد که به مکان آن می خواهیم یک صحنه متحرک (Motion Scene) اضافه کنیم. صحنه متحرک یک فولدر XML میباشد که مشمول جزییاتی در خصوص انیمیشنی میباشد که طراحی اپلیکیشن در مشهد می خواهیم با ویجت MotionLayout بسازیم.
کلیک نمایید
برای ساخت یک صحنه متحرک نو آغاز یک پوشه منابع XML می سازیم و آن را به عنصر MotionScene اضافه می کنیم.
?xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
هر صحنه متحرک مشتمل بر عنصرها ConstraintSet میباشد که قیودی که می بایست در ویجت تحت عنوان نقاط گوناگون برنامه کودک استعمال شود را معین مینماید. فولدرهای صحنه متحرک معمولاً مشتمل بر دو دسته قیود میباشند: یک مجموعه برای شروع برنامه خردسالان و دیگری برای نقطه پايان آن.
کد پایین به شما علامت میدهد چطور میتوانید دو تیم قیود برای امداد به تکان دادن ویجت ImageView از سوی ویجت MotionLayout از کناره راست-ذیل به کناره بالا-چپ کاغذ گزینه به کارگیری قرار دهید:
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:layout_width="60dp"
android:layout_height="60dp"
/>
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_width="60dp"
android:layout_height="60dp"
/>
دقت داشته باشید که هر عنصر ConstraintSet بایستی همواره هم شرایط مناسب و معادل مناسب را مشخص و معلوم نماید. این فرمان اصلی میباشد چون سبب ساز دستکاری هر سیرتکامل داده ها قبل رقم خورده برای لیآوت میگردد.
برای یاری به MotionLayout در جهت فهم این که کدام تیم قیود بایستی استعمال شوند در پی یک عنصر Transition ساخت میکنیم. با به کارگیری از خصوصیاتی با اسمهای constraintSetStart و constraintSetEnd می توانید گزینش فرمایید که کدام تیم می بایست آغاز و کدام یک بعد از آن آیتم استعمال قرار گیرند. عنصر Transition همینطور قابلیت و امکان انتخاب دوران برنامه کودکان را آماده مینماید.
android:id="@+id/my_transition"
app:constraintSetStart="@+id/starting_set"
app:constraintSetEnd="@+id/ending_set"
app:duration="2000">
درین فرصت صحنه متحرک بدون نقص گردیده است. با این وجود ویجت MotionLayout همچنان از آن بیاستحضار میباشد. براین اساس بایستی به فولدر XML بازگردیم و یک ویژگی layoutDescription به ویجت اضافه نماییم و مقدار آن را موازی اسم پوشه MotionScene گزینش کنیم.
در حالتیکه اسم پوشه MotionScene به طور my_scene.xml باشد، ویجت MotionLayout بایستی ظاهری مانند پایین داشته باشد:
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutDescription="@xml/my_scene"
android:id="@+id/motion_container">
...