انیمیشن های (Animations) اندروید

انیمیشن های (Animations) اندروید

انیمیشن (Animation) به معنی حرکت دادن و ایجاد تغییری در المان های layout اندروید می باشد. در اندروید از طریق راه های مختلفی میتوان با انیمیشن ها  کار کرد که در این پست ما یکی از معمول ترین و ساده ترین راه ها به نام Tween Animation را آموزش می دهیم.

Tween Animation :

Tween Animation پارامتر های زیادی را مانند مقدار شروع، مقدار خاتمه، اندازه، مدت زمان اجرای انیمیشن، زاویه چرخش و … می گیرد و این انیمیشن را بر روی یک شی یا المان و یا بر روی چندین شی یا المان اجرا می کند.

حال برای استفاده از این انمیشن کلاسی در اندروید به نام Animation را به کار می گیریم  و همچنین برای اجرای آن نیاز است تا یک تابع استاتیک به نام ()loadAnimation از کلاس AnimationUtils را صدا بزنیم که فرم (syntax) کلی آن به صورت زیر است:

پارامتر دوم در تابع ()loadAnimation همان نام و آدرس فایل xml انیمیشن ما است که در پوشه ای به نام anim در قسمت res پروژه قرار دارد.

توجه: فایل های xml انیمیشن باید در دایرکتوری ای به نام anim قرار داشته باشند، در صورت عدم وجود این پوشه برای ایجاد آن بایستی در دایرکتوری res یک دایرکتوری دیگر از نوع anim بسازیم.

کلاس Animation توابع زیادی دارد که پرکاربردترین آن ها در جدول زیر لیست شده اند:

 

متد توضیحات
start() با این متد انیمیشن را start می کنیم
setDuration(long duration)  این متد مدت زمان اجرای انمیشن را مشخص می کند
getDuration()  این متد مدت زمانی را که توسط متد بالا تنظیم شده را می گیرد
end() این متد انیمیشن را خاتمه می دهد
cancel()  می کند (cancel) این متد انمیشن را لغو 

پس از تعریف و دادن آدرس و نام انیمشن برای اجرای آن بر روی یک المان یا شی باید متد ()startAnimation را بروی آن المان صدا بزنیم مانند زیر:

مثال :

برای درک و یادگیری بهتر انیمیشن ها، با هم یک پروژه را انجام می دهیم که در این مثال شما با انواع انیمیشن  scale, rotate, alpha و translate و ویژگی های آن ها آشنا می شوید.

۱. در ابتدا باید یک پروژه در اندروید استودیو بسازید.

۲. کدهای زیر را در فایل های مربوطه قرار دهید:

  • کدهای MainActivity.java :

در کد بالا ir.mobcollege.animation نام پکیج برنامه می باشد، دقت کنید که شما باید نام پکیج برنامه خود را قرار دهید.

  • کدهای activity_main.xml :

در این کد فایل با نام abc , تصویر لگوی سایت mobcollege می باشد.

حال چند فایل xml انیمیشن با نام های myanimation.xml , clockwise.xml , fade.xml , blink.xml , move.xml , slide.xml در پوشه anim که برای انیمیشن ها است، ایجاد کنید و کدهای مربوط به هر کدام را در آن قرار دهید.

  • کدهای myanimation.xml :

در کد بالا scale انیمشنی است که سایز و مقیاس المان را تغییر می دهد. در این کد خصوصیت های fromXScale و toXScale مقیاس المان را در راستای محور x از یک اندازه به اندازه دیگر تغییر می دهد و خصوصیت های fromYScale و toYScale همین کار را در راستای محور y انجام می دهند.

خصوصیت های pivotX و pivotY مشخص می کنند که انیمیشن حول چه نقطه ای انجام شود که با گذاشن هر دو آن ها بر روی ۵۰% مشخص می شود که از مرکز المان باید شروع شود.

خواص startOffset و duration نیز به ترتیب برای زمان شروع انیمیشن (بعد از گذشت چه مدت زمانی شروع شود) و مدت زمان انیمیشن استفاده می شوند.

  • کد های clockwise.xml :

در این کد rotate انیمیشن دیگری است که برای چرخش المان استفاده می شود و با خصوصیت های fromDegrees و toDegrees مشخص می کنیم که این چرخش از چه زاویه ای شروع و به چه زاویه ای ختم شود.

  • کد های fade.xml :

در کدهای بالا از انیمیشن alpha استفاده شده که این انیمیشن شفافیت عنصر را تغییر می دهد که با استفاده از خواص  fromAlpha و toAlpha مشخص می کنیم از چه مقدار شفافیتی شروع و به چه مقداری ختم شود.

  • کدهای blink.xml :

در این جا repeatMode و repeatCount به ترتیب برای مد تکرار و تعداد تکرار می باشد که تعداد تکرار infinite یعنی بی نهایت بار انجام شود.

  • کد های move.xml :

در این کدها از انیمیشن translate استفاده شده که این انیمیشن برای جا به جایی استفاده می شود که با استفاده از  fromXDelta و toXDelta مشخص می کنیم در راستای محور x از کجا تا کجا حرکت کند و همین خواص را نیز برای محور y نیز داریم.

  • کدهای slide.xml :

۳. در آخر هم برنامه را بر روی یک دیوایس اجرا می کنیم که خروجی آن به صورت زیر است :
android-animations-1
android-animations-2
android-animations-3
تمام 🙂

مقاله های مرتبط :

دیدگاه خود را بیان کنید :

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *