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


معرفی سه کتابخانه برای ساخت انیمیشن در اندروید

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

معرفی کتابخانه FabFilter

این کتابخانه ساخت انیمیشن های پیچیده را برای UI بدون استفاده از MotionLayout ممکن می سازد. بخشی از عملکرد این کتابخانه شامل جمع شدن toolbar هم زمان با scroll کردن می باشد. چنین کارکردی با استفاده از CoordinatorLayout Behavior ممکن می شود. 

عملکرد دیگر این کتابخانه مخصوص آیتم های RecyclerView در حالتی ست که قابلیت جمع یا باز شدن را دارند. در مقاله ای از بلاگ نحوه ایجاد چنین آیتم هایی در RecyclerView آموزش داده شده که می توانید در این لینک مطالعه نمایید.

جهت scroll نمودن tab های bottom navigation نیز می توانید از قابلیت این کتابخانه برای پیاده سازی یک انیمیشین زیبا و روان بهره ببرید. از دیگر قابلیت های این کتابخانه می توان به ایجاد انیمیشن برای بخش های فیلتردار و نمایش FAB یا floating action button با انیمیشن اشاره کرد. 

لازم به ذکر است برای هر مورد چند حالت انیمیشن وجود دارد. جهت آشنایی با تمام امکانات و نحوه استفاده از این کتابخانه حتما سری به لینک آن در گیت هاب بزنید.

معرفی کتابخانه PacButton

این کتابخانه یک انیمیشن ساده اما زیبا ارائه می دهد. انیمیشنی برای سویچ نمودن وضعیت یک button به button دیگری. برای افزودن این کتابخانه به پروژه کافی ست این خط را در بخش dependency اضافه نمایید.

dependencies {
  implementation 'com.bitvale:pacbutton:1.0.0'
}

ویجت مربوطه به شکل زیر در layout ِ شما قرار می گیرد.

<com.bitvale.pacbutton.PacButton
    android:id="@+id/pac_button"
    android:layout_width="@dimen/pac_size"
    android:layout_height="@dimen/pac_size"
    app:topIcon="@drawable/ic_video"
    app:bottomIcon="@drawable/ic_photo"
    app:iconHeight="@dimen/icon_size"
    app:iconWidth="@dimen/icon_size"
    app:pacGradientColor_1="@color/gradient_color_1"
    app:pacGradientColor_2="@color/gradient_color_2" />

با این ویجت محدودیتی برای انتخابِ حالت رنگ بین gradient  و solid ندارید. 

در کلاس کاتلین هم به شکل زیر قابل استفاده می باشد.

pac_button.setSelectAction {
    if (it) some_image.setImageResource(R.drawable.ic_video_cam)
    else some_image.setImageResource(R.drawable.ic_photo_cam)
}

pac_button.setAnimationUpdateListener { progress ->
    some_image.alpha = 1 - progress
}

معرفی کتابخانه ای برای شروع و خاتمه اکتیویتی ها ActivityCircularReveal

این کتابخانه یک انیمیشن دایره ای برای باز نمودن یا بستن اکتیویتی ها ارائه می دهد. برای اضافه نمودن این کتابخانه به پروژه اندرویدی، ابتدا در بخشِ repositories در فایل gradle باید jitpack را به صورت زیر وارد نمایید :

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

در قدم بعدی این خط را در dependency پروژه خود اضافه کنید :

dependencies {
    implementation 'com.github.tombayley:ActivityCircularReveal:1.0.1'
}

وقتی در اکتیویتی ای قرار دارید که می خواهید اکتیویتی دیگری را برای نمایش صدا بزنید مثل کد زیر عمل کنید :

CircularReveal.presentActivity(CircularReveal.Builder(
    this,
    viewClicked,
    Intent(this, OtherActivity::class.java),
    1000
))

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

private lateinit var mActivityCircularReveal: CircularReveal

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_other)

    val rootView: View = // ...
    mActivityCircularReveal = CircularReveal(rootView)
    mActivityCircularReveal.onActivityCreate(intent)
}

override fun onBackPressed() {
    mActivityCircularReveal.unRevealActivity(this)
}

برای آشنایی با تمام عملکرد این کتابخانه حتما سری به لینک گیت هاب پروژه بزنید.

 

به این پست امتیاز دهید

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

میانگین امتیاز / 5. تعداد:

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *




Enter Captcha Here : *

Reload Image