چالش پروژه های من | ایجاد انیمیشن برفک

تو اخرین پروژه ای که داشتم خیلی متفاوت تر از بقیه پروژه های بود و چالش های متفاوت و جذابی برام پیش اومد و با خودم گفتن که این چالش ها رو براتون به اشتراک بزارم تا شما هم از تجربه هایی که کسب کردم استفاده بکنید !

چالش !!

چالش من تو یک قسمتی از اپ این بود که باید یک انیمیشن به حالت برفک تلویزیون روی یک قسمتی از view مینداختم

مشکلات پیش روم اینا بودن :

  1. مشکل low memory
  2. بهینه ترین روش برای کاهش حجم اپ

من باید اول پیدا میکردم که چجوری این رو پیاده سازی کنم که به مشکل memory leak نخورم چون پردازش سر این قسمت مطمئن بودم بالا میرفت

پیاده سازی

در مرحله اول طراح رابطه کاربری اومد 15 فریم از این انیمیشن تو قالب عکس برام فرستاد پس یعنی من 15 تا عکس کم حجم با بکگراند transparent دارم و فقط باید اینارو پشت سرم هم تو یه بازه زمانی مشخص و به صورت infinite نشون بدن پس میام یک فایل drawable میسازم به اسم anim_snow_flake.xml :

و داخل layout یک imageview ساختم که این انیمیشن رو داخل نشون بدم :

خب حالا قبل اینکه بیایم این انیمیشن رو start کنیم باید قبلش مموری رو چک کنیم در غیر این صورت اگه مموری low باشه اپ کرش میشه چون دیگه رم نمیمونه واسه پردازش این قسمت , پس من یه تابع نوشتم و چک میکنم که ایا مموری low هست یا نه :

تابع بالا به ما یک مقدار بولین برمیگردونه که از طریق اون میتونیم متوجه بشیم مموری در چه وضعیتی هست و حالا برسیم به قسمت انیمیشن , یک تابع جدا مینویسم و تمامی کد هایی که مربوط به انیمیشن برفک هست رو اینجا قرار میدم تا همه چی تفکیک شده باشه :

تو تابع بالا اول اومدم چک کردم مموری در چه وضعیتی قرار داره و بعد از چک اومدم به imageView اون اینیمیشنی که ساختمو دادم و یک thread ایجاد کردم که انیمیشن رو Run کنه و در نهایت این همون چیزی که میخواستم

نظرتون رو بهم لطف کنید بگید
بنظرتون راه بهتری وجود داشت که من این رو پیاده سازی کنم ؟



https://vrgl.ir/4Culu

میتونید از طریق تلگرام با من در ارتباط باشید :

Telegram : BehnamNasehii

shahrara.net