آموزش پیاده‌سازی Shared Element در اندروید

استاندارد

در اپلیکیشن‌های اندرویدی ، به صورت پیش‌فرض حرکت بین Activity یا Fragment هامون دارای انیمیشن ورود و خروج هستن . این انیمیشن‌ها شامل انیمیشن‌های پیشفرضی مثل fade in ، slide یا explode هست ، همینطور علاوه بر اینها ، شما میتونید از انیمیشن‌های دلخواه خودتون که ساختین استفاده کنید .
حالا گاهی پیش میاد که بین Activity یا Fragment هایی که قراره بین اونها حرکت کنیم کامپننت‌های گرافیکی مشابهی وجود داشته باشه . توی این حالت میتونیم با استفاده از Shared Element ، در حین حرکت بین دو activity (یا fragment) این کامپننت‌ها رو نگه داریم و فقط اونها رو از موقعیتی که در activiy (یا fragment) اول حضور دارن به موقعیت جدیدشون در activity (یا fragment) دوم منتقل کنیم . مثل زیر .

sharedelementgif

نکته : Shared Element فقط در اندروید ۵ ( api ۲۱) و بالاتر از اون پشتیبانی میشه .

حالا میریم سراغ سناریو مثالی که ما میخوایم اون رو پیاده‌سازی کنیم .  فرض کنید دوتا activity داریم ، activiy اول شامل یک لوگو با اندازه بزرگ در وسط صفحه‌ ، که نقش صفحه اسپلش رو برای ما بازی میکنه و activity دوم صفحه ثبت‌نام اپلیکیشن هست که باز هم شامل همون لوگو هست اما در اندازه کوچک‌تر . ما قراره با باز کردن اپلیکیشن با دیدن actitiy اسپلش ، بعد از ۲ ثانیه وارد activity ثبت‌نام بشیم . در حرکت بین این دو صفحه قراره لوگوی ما ( ImageView) از وسط صفحه‌ اسپلش با استفاده از Shared Element به جای جدیدش در activity ثبت‌نام منتقل بشه . دقیقا مثل روندی که کمی بالاتر در تصویر دیدیم . به خواندن ادامه دهید