ایجاد Activity های انیمیشنی در Xamarin
چهارشنبه 31 شهریور 1395در این مقاله ، نحوه ساخت و پیاده سازی Activity های انیمیشنی جذابی را خواهیم آموخت. مراحل کار به صورت گام به گام و کامل توضیح داده شده اند. همچنین فایل برنامه ساخته شده نیز در انتها برای دانلود قرار داده شده است.
مقدمه
انیمیشن های اندروید ، جذابیت بصری برنامه را برای کاربر به میزان زیادی افزایش می دهند . در این مقاله، ما چهار نوع از این انیمیشن ها را ایجاد خواهیم کرد.
1-انیمیشن حرکت از چپ به راست
2- انیمیشن حرکت از راست به چپ
3- انیمیشن حرکت از پایین به بالا
4- انیمیشن حرکت از بالا به پایین
بیایید شروع کنیم.
انیمیشن حرکت از چپ به راست
گام اول
ابتدا مسیر زیر را طی کنید تا یک پروژه برای شما ایجاد شود:
Visual Studio->New Project->Templates->Visual C#->Android->Blank App
نام پروژه و همچنین محل ذخیره سازی آن را انتخاب کنید.

گام دوم :
به مسیر Solution Explorer-> Project Name-> Resources بروید ، سپس کلیک راست کرده و یک پوشه جدید ایجاد کنید و نام آن را Anim قرار بدهید.

گام سوم :
ابتدا باید XML resource مورد نظرمان را ایجاد کنیم. برای این کار به مسیر Solution Explorer-> Project Name-> Resources-> Anim بروید، کلیک راست کنید و گزینه ی Add-> New Item را انتخاب کنید. یک پنجره برای شما باز خواهد شد که شما باید در آن گزینه ی XML را انتخاب کنید، نام آن را نیز Side_in_left.xm بگذارید. به همین روش ، یک resource دیگر ایجاد کنید و نام آن را Side_out_right.xml بگذارید.


گام چهارم :
یک Design view اضافه کنید. به مسیر Solution Explorer-> Project Name-> Resources-> Layout بروید. کلیک راست کرده و در پنجره جدیدی که باز می شود ، گزینه ی Android Layout را انتخاب کنید و نام آن را Lefttoright.axml بگذارید.

گام پنجم
یک Activity ایجاد کنید. به مسیر Solution Explorer-> Project Name بروید، بر روی نام پروژه کلیک راست کرده و گزینه ی Add->New Item را انتخاب کنید. در پنجره ای که ظاهر می شود، گزینه ی activity را انتخاب کنید و نام آن را LeftToRightActivity.cs بگذارید.

گام ششم :
به مسیر Solution Explorer-> Project Name-> Resources->Anim -> Side_in_left.xml بروید و تکه کد زیر را در این فایل اضافه کنید.
<?xml version="1.0" encoding="utf-8" ?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<translate android:duration="600"
android:fromXDelta="-100%"
android:toXDelta="0%"/>
</set>
گام هفتم : به مسیر Solution Explorer-> Project Name-> Resources-> Anim -> Side_out_right.xm بروید و تکه کد زیر را در فایل اضافه کنید.
<?xml version="1.0" encoding="utf-8" ?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<translate android:duration="600"
android:fromXDelta="0%"
android:toXDelta="100%"/>
</set>
گام هشتم : به مسیر Solution Explorer-> Project Name-> Resources-> Layout -> Lefttoright.axml. بروید و تکه کد زیر را در آن فایل اضافه کنید .
<TextView android:text="LEFT TO RIGHT" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView1" />
گام نهم : به مسیر Solution Explorer-> Project Name-> LeftToRightActivity.cs بروید و تکه کد زیر را در آن وارد کنید.
SetContentView(Resource.Layout.Lefttoright);
انیمیشن حرکت از راست به چپ
گام دهم : به مسیر olution Explorer-> Project Name-> Resources-> Anim بروید، کلیک راست کرده و گزینه ی add-> New Item را انتخاب کنید. در پنجره جدیدی که باز می شود، گزینه ی XML را انتخاب کنید و نام آن را Side_in_right.xml بگذارید. یک فایل دیگر به همین روش ایجاد کنید و نام آن را Side_out_left.xml بگذارید.
گام یازدهم : به مسیر Solution Explorer-> Project Name-> Resources-> Layout بروید، کلیک راست کنید و گزینه ی Add-> New Item را انتخاب کنید. در پنجره جدیدی که باز می شود، XML را انتخاب کنید و نام آن را RighttoLeft.axml بگذارید.
گام دوازدهم : حالا یک Activity ایجاد کنید. به مسیر Solution Explorer-> Project Name بروید، بر روی نام پروژه کلیک راست کنید و گزینه Add-> New Item را انتخاب کنید. در پنجره جدید گزینه ی activity را انتخاب کنید و نام آن را RighttoLeftActivity.cs بگذارید.
گام سیزدهم : به مسیر Solution Explorer-> Project Name->Resources->Anim -> Side_in_right.xml بروید و تکه کد زیر را در آن اضافه کنید.
<?xml version="1.0" encoding="utf-8" ?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<translate android:duration="600"
android:fromXDelta="100%"
android:toXDelta="0%" />
</set>
گام چهاردهم: به مسیر Solution Explorer-> Project Name->Resources->Anim -> Side_out_left.xml بروید و تکه کد زیر را در آن وارد کنید.
<?xml version="1.0" encoding="utf-8" ?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<translate android:duration="600"
android:fromXDelta="0%"
android:toXDelta="-100%"/>
</set>
گام پانزدهم:
به مسیر Solution Explorer-> Project Name->Resources->Layout -> RighttoLeft.axml بروید و تکه کد زیر را در آن وارد کنید.
<TextView
android:text="RIGHT TO LEFT"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1" />
گام شانزدهم :
به مسیر Solution Explorer-> Project Name-> RighttoLeftActivity.cs بروید و تکه کد زیر را در آن وارد کنید.
SetContentView(Resource.Layout.Righttoleft);
انیمیشن حرکت از پایین به بالا
گام هفدهم : به مسیر olution Explorer-> Project Name-> Resources-> Anim بروید، کلیک راست کرده و گزینه ی add-> New Item را انتخاب کنید. در پنجره جدیدی که باز می شود، گزینه ی XML را انتخاب کنید و نام آن را Pushup_in.xml بگذارید. یک فایل دیگر به همین روش ایجاد کنید و نام آن را Pushup_out.xml بگذارید.
گام هجدهم :
به مسیر Solution Explorer-> Project Name-> Resources-> Layout بروید، کلیک راست کنید و گزینه ی Add-> New Item را انتخاب کنید. در پنجره جدیدی که باز می شود، XML را انتخاب کنید و نام آن را bottomtotop.axml بگذارید.
گام نوزدهم : حالا یک Activity ایجاد کنید. به مسیر Solution Explorer-> Project Name بروید، بر روی نام پروژه کلیک راست کنید و گزینه Add-> New Item را انتخاب کنید. در پنجره جدید گزینه ی activity را انتخاب کنید و نام آن را bottomtotop.cs بگذارید.
گام بیستم : به مسیر Solution Explorer-> Project Name->Resources->Anim -> Pushup_in.xml بروید و تکه کد زیر را در آن اضافه کنید.
<?xml version="1.0" encoding="utf-8" ?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<translate android:fromYDelta="100%p"
android:toYDelta="0"
android:duration="600"/>
</set>
گام بیست و یکم: به مسیر Solution Explorer-> Project Name->Resources->Anim -> Pushup_out.xml بروید و تکه کد زیر را در آن وارد کنید.
<?xml version="1.0" encoding="utf-8" ?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<translate android:fromYDelta="0"
android:toYDelta="-100%p"
android:duration="600"/>
</set>
گام بیست و دوم :
به مسیر Solution Explorer-> Project Name->Resources->Layout -> RighttoLeft.axml بروید و تکه کد زیر را در آن وارد کنید.
<TextView
android:text="BOTTOM TO TOP"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1" />
گام بیست و سوم :
به مسیر Solution Explorer-> Project Name-> bottomtotop.cs بروید و تکه کد زیر را در آن وارد کنید.
SetContentView(Resource.Layout.bottomtotop);
انیمیشن حرکت از بالا به پایین
گام بیست و چهارم : به مسیر olution Explorer-> Project Name-> Resources-> Anim بروید، کلیک راست کرده و گزینه ی add-> New Item را انتخاب کنید. در پنجره جدیدی که باز می شود، گزینه ی XML را انتخاب کنید و نام آن را Pushdown_in.xml بگذارید. یک فایل دیگر به همین روش ایجاد کنید و نام آن را Pushdown_out.xml بگذارید.
گام بیست و پنجم :
به مسیر Solution Explorer-> Project Name-> Resources-> Layout بروید، کلیک راست کنید و گزینه ی Add-> New Item را انتخاب کنید. در پنجره جدیدی که باز می شود، XML را انتخاب کنید و نام آن را Toptobottom.axml بگذارید.
گام بیست وششم : حالا یک Activity ایجاد کنید. به مسیر Solution Explorer-> Project Name بروید، بر روی نام پروژه کلیک راست کنید و گزینه Add-> New Item را انتخاب کنید. در پنجره جدید گزینه ی activity را انتخاب کنید و نام آن را Toptobottom Activity.cs بگذارید.
گام بیست و هفتم : به مسیر Solution Explorer-> Project Name->Resources->Anim Pushdown_in.xml بروید و تکه کد زیر را در آن اضافه کنید.
<?xml version="1.0" encoding="utf-8" ?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<translate android:fromYDelta="-100%p"
android:toYDelta="0"
android:duration="600"/>
</set>
گام بیست و هشتم: به مسیر Solution Explorer-> Project Name->Resources->Anim -> Pushdown_out.xml بروید و تکه کد زیر را در آن وارد کنید.
<?xml version="1.0" encoding="utf-8" ?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<translate android:fromYDelta="0"
android:toYDelta="100%p"
android:duration="600" />
</set>
گام بیست و نهم :
به مسیر Solution Explorer-> Project Name->Resources->Layout -> Pushdown_outبروید و تکه کد زیر را در آن وارد کنید.
<TextView
android:text="TOP TO BOTTOM"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1" />
گام سی ام :
به مسیر Solution Explorer-> Project Name-> Toptobottom Activity.cs بروید و تکه کد زیر را در آن وارد کنید.
SetContentView(Resource.Layout. Toptobottom);
گام سی و یکم:
در نهایت، یک رویداد کلیک برای دکمه ی مربوط به هر انیمیشن ایجاد کنید. فایل Main.axml را باز کنید و کدهای زیر را در آن قرار بدهید.
<Button
android:text="RIGHT TO LEFT"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/righttoleft" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/bottomtotop"
android:text="BOTTOM TO TOP" />
<Button
android:text="LEFT TO RIGHT"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/lefttoright" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/toptobottom"
android:text="TOP TO BOTTOM" />
گام سی و دوم :
به مسیر Solution Explorer-> Project Name-> MainActivity.cs بروید و کد زیر را در آن وارد کنید.
public class MainActivity: Activity {
int count = 1;
Button Righttoleft;
Button bottomtotop;
Button lefttoright;
Button toptobottom;
protected override void OnCreate(Bundle bundle) {
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
Righttoleft = FindViewById < Button > (Resource.Id.righttoleft);
bottomtotop = FindViewById < Button > (Resource.Id.bottomtotop);
lefttoright = FindViewById < Button > (Resource.Id.lefttoright);
toptobottom = FindViewById < Button > (Resource.Id.toptobottom);
Righttoleft.Click += Righttoleft_Click;
bottomtotop.Click += bottomtotop_Click;
lefttoright.Click += Lefttoright_Click;
toptobottom.Click += Toptobottom_Click;
}
private void Toptobottom_Click(object sender, EventArgs e) {
Intent intent;
intent = new Intent(this, typeof(ToptoBottomActivity));
StartActivity(intent);
OverridePendingTransition(Resource.Animation.@Pushdown_in, Resource.Animation.@Pushdown_out);
}
private void Lefttoright_Click(object sender, EventArgs e) {
Intent intent;
intent = new Intent(this, typeof(LeftToRightActivity));
StartActivity(intent);
OverridePendingTransition(Resource.Animation.@Side_in_left, Resource.Animation.@Side_out_right);
}
private void bottomtotop_Click(object sender, EventArgs e) {
Intent intent;
intent = new Intent(this, typeof(BottomToTopActivity));
StartActivity(intent);
OverridePendingTransition(Resource.Animation.@Pushup_in, Resource.Animation.@Pushup_out);
}
private void Righttoleft_Click(object sender, EventArgs e) {
Intent intent;
intent = new Intent(this, typeof(RighttoLeftActivity));
StartActivity(intent);
OverridePendingTransition(Resource.Animation.@Side_in_right, Resource.Animation.@Side_out_left);
}
}
حالا می توانید برنامه را اجرا کنید و خروجی مورد نظر را ببینید .

دوره های آموزشی زامارین
دوره برنامه نویسی اندروید با سی شارپ ( Xamarin )
آموزش متریال دیزاین در زامارین
آموزش Xamarin Forms
دوره Xamarin Form پیشرفته
- Xamarin
- 2k بازدید
- 2 تشکر