Beautiful and smooth custom loading views

Overview

mkloader

Build Status

Beautiful and smooth custom loading views

Usage

<com.tuyenmonkey.mkloader.MKLoader
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          app:mk_type="<loading_type>" (Optional. Default is ClassicSpinner)
          app:mk_color="<color>" (Optional. Default is #ffffff)
      />

Supported Types

  • Sharingan
  • TwinFishesSpinner
  • ClassicSpinner
  • LineSpinner
  • FishSpinner
  • PhoneWave
  • ThreePulse
  • FourPulse
  • FivePulse
  • Worm
  • Whirlpool
  • Radar

Download

Gradle

dependencies {
  compile 'com.tuyenmonkey:mkloader:1.4.0'
}

Snapshots of the development version are available in Sonatype's snapshots repository.

License

Copyright 2017 Tuyen Monkey

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Animation stops if loader is inside a recycler view item

    Animation stops if loader is inside a recycler view item

    Hi,

    I noticed that if you put the MKLoader inside a recycler view item, when the view holder is recycled the animation is stopped.

    Can you look at the issue?

    Thanks

    opened by bafitor 4
  • Memory leaks

    Memory leaks

    Hello, i've found a little mistake which makes memory leaks. In each implementation of LoaderView you use invalidateListener in infinity ValueAnimator and it holds a context (yep, activity).

    Easy solution: Add to MKLoader view: protected void onDetachedFromWindow() { super.onDetachedFromWindow(); loaderView.setInvalidateListener(null); }

    and in each ValueAnimator check for invalidateListener == null and stop animations

    opened by ezubkov 1
  • tweak build.gradle files for easier updating

    tweak build.gradle files for easier updating

    Hi, I saw your library on Android Weekly — nice stuff. I thought I'd tweak the build a bit to make it easier to upgrade versions in the future — hope that's cool.

    opened by jonathan-caryl 1
  • NullPointerExceptionAttempt to read from field 'float

    NullPointerExceptionAttempt to read from field 'float

    Fatal Exception: java.lang.NullPointerExceptionAttempt to read from field 'float android.graphics.PointF.x' on a null object reference Raw Text

      | com.tuyenmonkey.mkloader.type.ClassicSpinner.draw + 57 (ClassicSpinner.java:57)   | com.tuyenmonkey.mkloader.MKLoader.onDraw + 61 (MKLoader.java:61)   | android.view.View.draw + 20463 (View.java:20463)   | android.view.ViewGroup.dispatchDraw + 4170 (ViewGroup.java:4170)   | com.jeremyfeinstein.slidingmenu.lib.CustomViewAbove.dispatchDraw + 769 (CustomViewAbove.java:769)   | android.view.View.draw + 20466 (View.java:20466)   | com.android.internal.os.ZygoteInit.main + 958 (ZygoteInit.java:958)

    opened by UniOrders 1
  • Getting Null pointer exception while running in Android 9 update

    Getting Null pointer exception while running in Android 9 update

    The loader was running smoothly, unless I update the device with Android Pie update. Attaching log response for your reference.

    Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'android.graphics.PointF com.tuyenmonkey.mkloader.model.Line.getPoint1()' on a null object reference at com.tuyenmonkey.mkloader.type.Pulse.draw(Pulse.java:67) at com.tuyenmonkey.mkloader.MKLoader.onDraw(MKLoader.java:61) at android.view.View.draw(View.java:20211) at android.view.View.updateDisplayListIfDirty(View.java:19086) at android.view.View.draw(View.java:19939) at android.view.ViewGroup.drawChild(ViewGroup.java:4333) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4136) at android.view.View.updateDisplayListIfDirty(View.java:19077) at android.view.View.draw(View.java:19939) at android.view.ViewGroup.drawChild(ViewGroup.java:4333) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112) at android.view.View.updateDisplayListIfDirty(View.java:19077) at android.view.View.draw(View.java:19939) at android.view.ViewGroup.drawChild(ViewGroup.java:4333) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112) at android.view.View.draw(View.java:20214) at android.support.v4.view.ViewPager.draw(ViewPager.java:2420) at android.view.View.updateDisplayListIfDirty(View.java:19086) at android.view.View.draw(View.java:19939) at android.view.ViewGroup.drawChild(ViewGroup.java:4333) at android.support.design.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1254) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112) at android.view.View.draw(View.java:20214) at android.view.View.updateDisplayListIfDirty(View.java:19086) at android.view.View.draw(View.java:19939) at android.view.ViewGroup.drawChild(ViewGroup.java:4333) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112) at android.view.View.updateDisplayListIfDirty(View.java:19077) at android.view.View.draw(View.java:19939) at android.view.ViewGroup.drawChild(ViewGroup.java:4333) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112) at android.view.View.updateDisplayListIfDirty(View.java:19077) at android.view.View.draw(View.java:19939) at android.view.ViewGroup.drawChild(ViewGroup.java:4333) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112) at android.view.View.updateDisplayListIfDirty(View.java:19077) at android.view.View.draw(View.java:19939) at android.view.ViewGroup.drawChild(ViewGroup.java:4333) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112) at android.view.View.updateDisplayListIfDirty(View.java:19077) at android.view.View.draw(View.java:19939) at android.view.ViewGroup.drawChild(ViewGroup.java:4333) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112) at android.view.View.draw(View.java:20214) at com.android.internal.policy.DecorView.draw(DecorView.java:780) at android.view.View.updateDisplayListIfDirty(View.java:19086) at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:686) at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:692) at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:801) at android.view.ViewRootImpl.draw(ViewRootImpl.java:3327) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3124) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2493) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1468) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7208) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1004) at android.view.Choreographer.doCallbacks(Choreographer.java:816) at android.view.Choreographer.doFrame(Choreographer.java:751) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:990) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6692) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

    opened by sunit09 0
  • onMeasure implementation is wrong

    onMeasure implementation is wrong

    The below implementation of onMeasure is showing wrong height and width in <= 5.0 devices.

     @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            final int measuredWidth = resolveSize(loaderView.getDesiredWidth(), widthMeasureSpec);
            final int measuredHeight = resolveSize(loaderView.getDesiredHeight(), heightMeasureSpec);
            setMeasuredDimension(measuredWidth, measuredHeight);
        }
    
    opened by kagile 0
Releases(1.4.0)
Owner
Tuyen Nguyen
No matter what happens, be cute
Tuyen Nguyen
Custom-view-animated-file-downloader - Custom Views, Animations, Broadcast Receivers, Notifications

Downloader App Custom views , Drawing with Canvas, Animations (with motionlayout

null 2 Jun 24, 2022
User onboarding library with smooth animation of objects and background colors

SlidingTutorial Cleveroad introduces Sliding Tutorial Library for Flutter Hey guys, hope you haven’t started developing a tutorial for your Flutter ap

Cleveroad 127 Dec 31, 2022
Support extension to use Android ViewBinding quickly and smooth transform from kotlin-synthetic-extension.

ViewBinding Delegate Extension Support extension to use Android ViewBinding quickly and smooth transform from kotlin-synthetic-extension. Binding inst

Cuong V. Nguyen 3 Dec 13, 2021
Road Runner is a library for android which allow you to make your own loading animation using a SVG image

Road Runner Road Runner is a library for android which allow you to make your own loading animation using a SVG image Sample video View in Youtube Dem

Adrián Lomas 1.2k Nov 18, 2022
Material image loading implementation

MaterialImageLoading Material image loading implementation Sample And have a look on a sample Youtube Video : Youtube Link [] (https://www.youtube.com

Florent CHAMPIGNY 392 Nov 17, 2022
Android loading animation with images changing

Android loading animation with images changing

Cüneyt Çarıkçi 109 Nov 29, 2022
[] Easily have blurred and transparent background effect on your Android views.

##[DEPRECATED] BlurBehind Easily have blurred and transparent background effect on your Android views. Before API level 14 there was a Window flag cal

Gokberk Ergun 516 Nov 25, 2022
💳 A quick and easy flip view through which you can create views with two sides like credit cards, poker cards etc.

The article on how this library was created is now published. You can read it on this link here. →. ?? EasyFlipView Built with ❤︎ by Wajahat Karim and

Wajahat Karim 1.3k Dec 14, 2022
A beautiful ripple animation for your app

Android Ripple Background A beautiful ripple animation for your app. You can easily change its color, speed of wave, one ripple or multiple ripples. S

Yao Yu 2.2k Dec 31, 2022
Android L Ripple effect wrapper for Views

Material Ripple Layout Ripple effect wrapper for Android Views Including in your project compile 'com.balysv:material-ripple:1.0.2' Check for latest v

Balys Valentukevicius 2.3k Dec 29, 2022
explosive dust effect for views

ExplosionField explosive dust effect for views Getting started In your build.gradle: dependencies { compile 'tyrantgit:explosionfield:1.0.1' } Ex

null 3.6k Dec 29, 2022
Glass-break effect for views

BrokenView Glass-break effect for views. Demo Download APK Usage Android Studio dependencies { compile 'com.zys:brokenview:1.0.3' } Eclipse Just pu

null 859 Dec 30, 2022
Android library to showcase/highlight the multiple views on same overlay

MultiLamp MultiLamp is simple and easy to use Android library to showcase/highlight the multiple views on the same overlay with some message. Gradle S

Ujwal Thote 234 Nov 22, 2022
Simple way to animate your views on Android with Rx 🚀

This is an Android library to make a simple way to animate your views on Android with Rx.

Lopez Mikhael 583 Dec 9, 2022
Animation View to Highlight particular Views 🎯 for Android

TargetView Animation View to Highlight particular Views ?? for Android, it can be Used with Views that you see important (Like CountDownTimer), And al

Anas Altair 53 Aug 7, 2021
FadeOutParticle is an animation for disappearing views like TextViews

FadeOutParticle is an animation for disappearing views like TextViews

Hooman Mohammadi 50 Dec 28, 2022
create your custom themes and change them dynamically with ripple animation

Android Animated Theme Manager create your custom themes and change them dynamically with ripple animation Features support java and kotlin projects.

Iman Dolatkia 601 Dec 22, 2022
FragmentTransactionExtended is a library which provide us a set of custom animations between fragments.

FragmentTransactionExtended FragmentTransactionExtended is a library which provide us a set of custom animations between fragments. FragmentTransactio

Antonio Corrales 1.1k Dec 29, 2022
DuGuang 1k Dec 14, 2022