创建drawable的动画过渡效果:ToggleDrawable

jopen 9年前

ToggleDrawable帮助你创建drawable的动画过渡效果。实现是依赖于贝塞尔曲线而不是SVG图像,完全兼容api 19以下。

使用说明:

DEMO APK


这个库提供了类似 SearchArrowDrawableSearchCrossDrawable 或者 DrawerArrowDrawable 的新实现方式:

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

你可以轻易的通过向ToggleDrawable传入几个 Bezier curves 创建自己的过渡效果:

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

或者简单的继承ToggleDrawable:

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));          }      }

查看 示例

安装

这个仓库在itPack上:

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

在根 build.gradle的repositories的最后添加:

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

添加依赖:

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


项目地址: https://github.com/renaudcerrato/ToggleDrawable