Easy drawable animation using beziers curves.
Branch: master
Clone or download
Latest commit 8968f07 Jan 26, 2016
Type Name Latest commit message Commit time
Failed to load latest commit information.
artworks removed start/end delay to GIF Dec 24, 2015
gradle/wrapper initial import Dec 23, 2015
library Update SearchModel.java Jan 8, 2016
sample Use Animation for API < 11 Dec 28, 2015
.gitignore initial import Dec 23, 2015
README.md Update README.md Jan 25, 2016
build.gradle initial import Dec 23, 2015
gradle.properties initial import Dec 23, 2015
gradlew initial import Dec 23, 2015
gradlew.bat initial import Dec 23, 2015
settings.gradle initial import Dec 23, 2015



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.



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

ToggleDrawable drawable = new SearchArrowDrawable(context);
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.


This repositery can be found on JitPack:


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'