انیمیشن(Tween 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 و ویژگی های آن ها آشنا می شوید.

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

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

 

محتوای زیر مربوط به فایل java/ir.oration.animation/MainActivity.java می باشد.

محتوای زیر مربوط به فایل res/layout/activity_main.xml می باشد.

 

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

محتوای زیر مربوط به فایل res/anim/myanimation.xml می باشد.

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

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

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

 

محتوای زیر مربوط به فایل res/anim/clockwise.xml می باشد.

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

 

محتوای زیر مربوط به فایل res/anim/fade.xml می باشد.

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

 

محتوای زیر مربوط به فایل res/anim/blink.xml می باشد.

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

 

محتوای زیر مربوط به فایل res/anim/move می باشد.

 

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

 

محتوای زیر مربوط به فایل res/anim/slideمی باشد.

۳_حال نوبت آن رسیده تا با استفاده از اندروید استودیو برنامه را اجرا کنیم. برای این منظور روی آیکون Run که در نوار ابزار قرار دارد کلیک کنید.اگر همه چیز بدون مشکل پیش برود پنجره ی شبیه ساز شما مانند تصویر زیر خواهد بود.

android_Animation

انیمیشن اندروید

 

 

 

 

 

 

 

پاسخ دهید

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