ToggleDrawable

使用贝塞尔曲线轻松绘制动画。「Easy drawable animation using beziers curves. 」

Github stars Tracking Chart

ToggleDrawable

ToggleDrawable helps to create animated drawable transitions using a minimalistic and clean API. The implementation relies on bezier curves instead of SVG graphics, and is compatible below API 19.

DEMO APK

How?

The library provides a few implementations like SearchArrowDrawable, SearchCrossDrawable or DrawerArrowDrawable:

ToggleDrawable drawable = new SearchArrowDrawable(context);
mImageView.setImageDrawable(drawable);
drawable.setProgress(...); // animate

You can easily create your own transitions by passing several Bezier curves to ToggleDrawable:

ToggleDrawable drawable = new ToggleDrawable(context);
drawable.add(<start>, <end>);
drawable.add(<start>, <end>);

Or by simpy subclassing ToggleDrawable instead:

public class MyCustomToggleDrawable extends ToggleDrawable {

        public MyCustomToggleDrawable(Context context) {
            super(context, 0, R.style.CustomToggleDrawableStyle);
            float radius = Math.round(getIntrinsicWidth()*0.5f);
            
            // From circle to square
            add(Bezier.quadrant(radius, 0), Bezier.line(radius, radius, radius, -radius));
            add(Bezier.quadrant(radius, 90), Bezier.line(-radius, radius, radius, radius));
            add(Bezier.quadrant(radius, 180), Bezier.line(-radius, radius, -radius, -radius));
            add(Bezier.quadrant(radius, 270), Bezier.line(-radius, -radius, radius, -radius));
        }
    }

Look at the sample.

Install

This repositery can be found on JitPack:

https://jitpack.io/#renaudcerrato/ToggleDrawable

Add it in your root build.gradle at the end of repositories:

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

Add the dependency:

dependencies {
	        compile 'com.github.renaudcerrato:ToggleDrawable:1.0.2'
	}

Overview

Name With Ownerrenaudcerrato/ToggleDrawable
Primary LanguageJava
Program languageJava (Language Count: 1)
Platform
License:Apache License 2.0
Release Count3
Last Release Name1.0.2 (Posted on )
First Release Name1.0.0 (Posted on 2015-12-24 07:17:23)
Created At2015-12-23 19:11:45
Pushed At2016-01-25 19:56:13
Last Commit At2016-01-25 13:56:13
Stargazers Count1.1k
Watchers Count27
Fork Count125
Commits Count38
Has Issues Enabled
Issues Count5
Issue Open Count1
Pull Requests Count3
Pull Requests Open Count0
Pull Requests Close Count0
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top