خیلی ازکارهای مربوط به رابط کاربری رو که میشه با جاوا توی اندروید انجام داد میشه با استفاده از کدهای xml هم این کار ها رو انجام داد. یک دسته از این کارها انیمیشن ها هستند. خیلی از انیمیشن ها را میتوان در فایلهای xml تعریف کرد و در برنامه از آنها استفاده کرد. در این مطلب روش استفاده از objectAnimator را داخل فایل xml توضیح میدهیم. دقت داشته باشید که روش استفاده از جاوای این انمیشن به همراه توضیحات بیشتر توی این لینک توضیح داده شده است.
برای ساخت انیمیشن ابتدا باید فایل xml انیمیشن رو توی پروژه بسازیم. برای این کار ابتدا روی پوشه res پروژه کلیک راست کرده و گزینه New و سپس زیر گزینه Android resource directory را انتخاب می کنیم. با این کار یک پنجره ظاهر میشود که نام و نوع پوشه را از ما میخواهد. نوع پوشه را animator انتخاب کرده و ok را می زنیم. دقت داشته باشید که اگر در پروژه شما در پوشه res پوشه این به نام animator وجود دارد لازم نیست که این کار را انجام دهید.
بعد از انجام دادن مراحل بالا یک پوشه به نام animator به پوشه res اضافه می شود. حال باید بر روی این پروژه کلیک راست کرده و گزینه New و سپس گزینه Animator Resource file را انتخاب می کنیم. با این کار یک پنجره برای شما ظاهر میشود که نام فایل را از شما می خواهد. نام فایل را وارد کرده و ok کنید. بعد از این کار یک فایل xml برای شما ساخته میشود که دارای تگ های set خواهد بود.
همانطور که در ابتدا گفتیم انیمیشن هایی که میخواهیم بسازیم با استفاده از ObjectAnimator خواهد بود. بنابراین برای ساخت از تگ objectAnimator استفاده می کنیم. در این مثال من کد پایین را نوشتهام که بخشهای آن را در ادامه توضیح میدهم.
android:ordering="sequentially">
android:interpolator="@android:interpolator/accelerate_cubic"
android:valueFrom="1" android:valueTo="0"
android:valueType="floatType" android:propertyName="alpha"
android:duration="5000" />
android:interpolator="@android:interpolator/accelerate_cubic"
android:valueFrom="0" android:valueTo="1"
android:valueType="floatType" android:propertyName="alpha"
android:duration="5000" />
هر objectAnimator بر روی یک مشخصه از شی یا object انیمیشن اجرا میکند که با propertyName در کد بالا مشخص شده است. همچنین باید مشخص کنیم که از چه مقداری میخواهیم به چه مقداری برسیم و انیمیشن بر روی آن اجرا شود. که به ترتیب با valueFrom و valueTo مشخص می شود. همچنین باید نوع داده مشخصه شی یا آبجکت را نیز مشخص کنیم که مثلاً alpha که در این مثال آورده شده است از چه نوع دادهای است که با استفاده از valueType مشخص شده و مقدار floatType به آن داده شده است.
همچنین مدت زمان انیمیشن را نیز میتوان برای هر objectAnimator مشخص کرد که با duration مشخص میشود که در این مثال 5000 یعنی 5 ثانیه در نظر گرفته شده است و در انتها میتوان برای انیمیشن جلوههای جالبی در نظر گرفت که با interpolator مشخص می شود. دقت داشته باشید که interpolator های مختلفی در اندروید وجود دارد که میتوان از آنها استفاده کرد. دقت داشته باشید که میتوان برای انیمیشن های پیچیدهتر از چند objectAnimator استفاده کرد و آنها را درون یک set قرار داد که ما در مثال بالا دو objectAnimator تعریف کرده ایم. حال با استفاده از set میتوان مشخص کرد که انیمیشن های داخل set همزمان اجرا شوند و یا به ترتیب اجرا شوند که این کار را با استفاده از خصوصیت ordering مشخص میکنیم. همچنین دقت داشته باشید که میتوان برای یک set مشخصات مانند زمان و یا interpolator هم در نظر گرفت.
برای اینکه انیمیشن تعریف شده در فایل xml را استفاده کنیم باید آن را لود کرده و داخل یک شی از نوع AnimatorSet بریزیم و از آن استفاده کنیم. برای لود کردن و استفاده کردن از انیمیشن از کد زیر استفاده می کنیم.
AnimatorSet set= (AnimatorSet) AnimatorInflater.loadAnimator(this,R.animator.myanimator);
set.setTarget(imageView);
set.start()
دقت کنید که نام فایل انیمیشن ما myanimator بود در کد بالا یک set از فایل xml ساختیم و بعد از آن مشخص کردیم که این انیمیشن قرار است که روی چه کنترلی انجام شود و در انتها آن را استارت کردیم. دقت داشته باشید که imageView قبلاً تعریف شده و وجود دارد. با اجرای این کد برنامه شما در متد ۵ ثانیه عکس را آرام آرام محو میکند و در ۵ ثانیه دوم آن را دوباره ظاهر میکند. امیدوارم لذت برده باشید.با وب سایت tosinso همراه باشید.
بنیانگذار توسینسو و برنامه نویس
مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود