یه برنامه نویس عادی ام که هر روز برای بهتر بودن، با خودم در رقابتم.
باز و بسته کردن اکتیویتی با انیمیشن
سلام دوستان این اولین مقاله ی من در ویرگول هست ،پس عذر بنده رو برای جمله بندی ها و یا غلط املایی ها قبول کنید چون تا جایی که یاد دارم درس املا و انشا پایین ترین نمره ها رو میگرفتم.?امیدوارم براتون کارآمد باشه همون طور که برای من بود.
در این مقاله قصد دارم به ایجاد انیمیشن برای حالت های باز و بسته شدن اکتیویتی در اندروید بپردازم. از اندروید ۵ به بعد زمانی که یک برنامه اجرا می شه با یک انیمیشن پیشفرض که در گوشی تعریف شده، برنامه اجرا می شه اما شما می تونید این روند از پیش تعریف شده رو به حالت دلخواه خودتون تغییر داده و تعریف کنید. پس اگر کنجکاوید که چطور؟ می تونید از این آموزش استفاده کنید :
من میخوام اکتیویتی های برنامم از سمت راست به چپ باز شن و هنگام بسته شدن بلعکس، از سمت چپ به راست بسته شن(بصورت کشویی). پس نیاز به ۴ انیمیشن دارم. یادتون باشه که شما باید یک پوشه به نام anim درست کنید و انیمیشن های خودتون را در آن قرار بدید .در قدم بعدی شروع میکنیم به ساختن ۴تا فایل انیمیشن.اولی به نام from_left_in.xml و با سورس کد :
`<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="-100%p"
android:toXDelta="0"
android:duration="300"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>
دومی به نام from_left_out.xml با سورس کد:
`<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0"
android:toXDelta="-100%p"
android:duration="300"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</set>
سومی با نام from_right_in.xml و با سورس کد:
`<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p"
android:toXDelta="0"
android:interpolator="@android:interpolator/accelerate_decelerate"
android:duration="300"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>
و در آخر چهارمین انیمیشن به نام from_right_out.xml و با سورس کد:
`<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0"
android:toXDelta="100%p"
android:duration="300"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</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:
پی نوشت: اونقدرا هم که فکر میکردم جمله بندی هام بد نشد?
مطلبی دیگر از این انتشارات
بازی با داکر قسمت دوم - Better Docker Images
مطلبی دیگر از این انتشارات
آموزش فارسی راه اندازی جنگو روی لینوکس
مطلبی دیگر از این انتشارات
پراپرتیهای فقط نوشتنی در C# ?