آموزش ها سورس ها و کتابخانه ها

آموزش کار با کتابخانه Ripple Effect

نوشته شده توسط حامد باقری

در این قسمت میخواهیم نحوه کار با کتابخانه Ripple Effect را به شما آموزش بدهیم . با استفاده از این کتابخانه میتوانید افکت متریال Wave را به ویو های برنامه خود اضافه کنید :

ابندا کتابخانه Ripple Effect را از لینک زیر دانلود نموده و در لیست کتابخانه های خود قرار دهید و آن را فعال کنید :

دانلود کتابخانه

با کلیک بر روی هر ویو , یک دایره نمایش داده میشود و بزرگ میشود و محو میشود . در اندروید به این افکت (Ripple Effect) و در طراحی وب (Waves Effect) میگویند …

۱ – در دیزاینر یک Edit Text و یک Button قرار داده ایم و آنها را در این اکتیویتی معرفی نموده ایم و میخواهیم به این دو ویو افکت بدهیم .

۲ – در این کد لایوت مربوطه را لود کرده ایم

۳ – در این کد یک متغیر از نوع RippleView تعریف کرده ایم و افکت را بر روی Button1 قرار داده ایم

۴ – در این کد نیز مجددا یک متغیر تعریف نموده ایم و افکت را بر روی EditText1 قرار داده ایم

به تصویر زیر توجه کنید :

برای استفاده از افکت ابتدا باید یک متغیر از نوع RippleView تعریف کنید .

۱ – در این قسمت نام ویو مربوطه قرار میگیرد ( میخواهیم به EditText1 افکت بدهیم )

۲ – در این قسمت باید رنگ افکت را مشخص کنید که میتواند به صورت RGB هم باشد …

۳ – در این قسمت مدت زمان اجرای افکت را میتوانید مشخص کنید .

۴ – اگر این قسمت را بر روی True قرار دهید , با کلیک بر روی ویـو مربوطه افکت فقط از وسط آن ویو شروع میشود و نمایش داده میشود و اگر این قسمت را بر روی False قرار دهید , از هرکجا که کلیک کنید افکت شروع میشود …

امیدواریم که این آموزش مورد استفاده شما عزیزان قرار گرفته باشد …

موفق باشید !


شما هم به کانال تلگرامی سایت ما بپیوندید !
همین حالا کلیک کنید !

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

3 نظر

  • وقتی افکت تموم میشه برنامه بسته میشه و این ارور رو میده:

    java.lang.IllegalStateException: Underflow in restore – more restores than saves
    at android.graphics.Canvas.native_restore(Native Method)
    at android.graphics.Canvas.restore(Canvas.java:522)
    at com.andexert.library.RippleView.draw(RippleView.java:146)
    at android.view.View.updateDisplayListIfDirty(View.java:16219)
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3711)
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3691)
    at android.view.View.updateDisplayListIfDirty(View.java:16182)
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3711)
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3691)
    at android.view.View.updateDisplayListIfDirty(View.java:16182)
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3711)
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3691)
    at android.view.View.updateDisplayListIfDirty(View.java:16182)
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3711)
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3691)
    at android.view.View.updateDisplayListIfDirty(View.java:16182)
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3711)
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3691)
    at android.view.View.updateDisplayListIfDirty(View.java:16182)
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3711)
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3691)
    at android.view.View.updateDisplayListIfDirty(View.java:16182)
    at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:648)
    at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:654)
    at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:762)
    at android.view.ViewRootImpl.draw(ViewRootImpl.java:2800)
    at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2608)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2215)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6343)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)
    at android.view.Choreographer.doCallbacks(Choreographer.java:686)
    at android.view.Choreographer.doFrame(Choreographer.java:621)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)
    at android.os.Handler.handleCallback(Handler.java:751)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:241)
    at android.app.ActivityThread.main(ActivityThread.java:6274)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

نظر بدهید