باز و بسته کردن اکتیویتی با انیمیشن



سلام دوستان این اولین مقاله ی من در ویرگول هست ،پس عذر بنده رو برای جمله بندی ها و یا غلط املایی ها قبول کنید چون تا جایی که یاد دارم درس املا و انشا پایین ترین نمره ها رو میگرفتم.?امیدوارم براتون کارآمد باشه همون طور که برای من بود.




در این مقاله قصد دارم به ایجاد انیمیشن برای حالت های باز و بسته شدن اکتیویتی در اندروید بپردازم. از اندروید ۵ به بعد زمانی که یک برنامه اجرا می شه با یک انیمیشن پیشفرض که در گوشی تعریف شده، برنامه اجرا می شه اما شما می تونید این روند از پیش تعریف شده رو به حالت دلخواه خودتون تغییر داده و تعریف کنید. پس اگر کنجکاوید که چطور؟ می تونید از این آموزش استفاده کنید :

من میخوام اکتیویتی های برنامم از سمت راست به چپ باز شن و هنگام بسته شدن بلعکس، از سمت چپ به راست بسته شن(بصورت کشویی). پس نیاز به ۴ انیمیشن دارم. یادتون باشه که شما باید یک پوشه به نام anim درست کنید و انیمیشن های خودتون را در آن قرار بدید .در قدم بعدی شروع میکنیم به ساختن ۴تا فایل انیمیشن.اولی به نام from_left_in.xml و با سورس کد :

`<set xmlns:android=&quothttp://schemas.android.com/apk/res/android&quot>
<translate android:fromXDelta=&quot-100%p&quot
 android:toXDelta=&quot0&quot
android:duration=&quot300&quot/>
<alpha android:fromAlpha=&quot0.0&quot android:toAlpha=&quot1.0&quot android:duration=&quot300&quot />
</set>

دومی به نام from_left_out.xml با سورس کد:

`<set xmlns:android=&quothttp://schemas.android.com/apk/res/android&quot>
  <translate android:fromXDelta=&quot0&quot
android:toXDelta=&quot-100%p&quot
 android:duration=&quot300&quot/>
<alpha android:fromAlpha=&quot1.0&quot android:toAlpha=&quot0.0&quot android:duration=&quot300&quot />
</set>

سومی با نام from_right_in.xml و با سورس کد:

`<set xmlns:android=&quothttp://schemas.android.com/apk/res/android&quot>
 <translate android:fromXDelta=&quot100%p&quot
 android:toXDelta=&quot0&quot      
  android:interpolator=&quot@android:interpolator/accelerate_decelerate&quot
android:duration=&quot300&quot/>
<alpha android:fromAlpha=&quot0.0&quot android:toAlpha=&quot1.0&quot android:duration=&quot300&quot />
</set>

و در آخر چهارمین انیمیشن به نام from_right_out.xml و با سورس کد:

`<set xmlns:android=&quothttp://schemas.android.com/apk/res/android&quot>
  <translate android:fromXDelta=&quot0&quot
 android:toXDelta=&quot100%p&quot
  android:duration=&quot300&quot/>
 <alpha android:fromAlpha=&quot1.0&quot android:toAlpha=&quot0.0&quot android:duration=&quot300&quot />
</set>

خب بیشترین قسمت کار ما تموم شد اما اصلی ترین قسمت هنوز مونده D:

برای اینکه به اکتیویتی بگیم حالا که داری startActivity میشی ، مدلی که من میخوام بازشو باید دستور زیر رو بعد از متد startActivity(intent); بنویسیم:

`overridePendingTransition(R.anim.from_right_in, R.anim.from_left_out);

و بلعکس، برای اینکه به اکتیویتی بگیم حالا که داری finish یا onBackPressed میشی باید مدلی که من بهت میگم بسته شی ، دستور زیر رو بعد از متد finish(); و هم درون متد onBackPressed مینویسیم:

`overridePendingTransition(R.anim.from_left_in, R.anim.from_right_out);

امیدوارم که اجرا کنید و لذتشو ببرید مثل خود من D:

پی نوشت: اونقدرا هم که فکر میکردم جمله بندی هام بد نشد?