创建drawable的动画过渡效果:ToggleDrawable
jopen
9年前
ToggleDrawable帮助你创建drawable的动画过渡效果。实现是依赖于贝塞尔曲线而不是SVG图像,完全兼容api 19以下。
使用说明:
这个库提供了类似 SearchArrowDrawable, SearchCrossDrawable 或者 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' }