SVG改变路径没有动画?

时间:2018-01-11 10:37:26

标签: android android-layout animation svg drawable

我有一个电池图标我希望"动画"如,改变填充路径的长度以指示电池百分比。但是,SVG和SVG动画的android文档表明你只能通过xml添加预定义的动画。有没有办法简单地改变SVG的路径并重绘它?

即。 SVG.setPath("new path")

我能想到的唯一另一个选择是为"丰满度"制作单独的动画。图标(一个在10%,20%,30%等),但这似乎非常繁琐。

2 个答案:

答案 0 :(得分:0)

我认为this是您需要的图书馆。请试一试。这是一个非常新的图书馆。我自己没试过。在使用之前,请阅读自述文件或库的问题。

答案 1 :(得分:0)

您可以制作CustomView并覆盖onDraw。在此方法中,您调用传递canvas.drawPath实例的Path。应在onCreate中创建此对象,并使用您的路径数据“填充”该对象。您需要understand the SVG/VectorDrawable path并找到Path类的相应方法。您还必须添加一个缩放变量以使其大小可变。在布局XML中,您可以设置所需的大小。

public class CustomView extends View {
    Paint paint;
    Path path;

    public CustomView(Context context) {
        super(context);
        paint = new Paint();
        paint.setColor(Color.RED);
        path = // construct your path using Path methods
    }

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawPath(path, paint);
    }
}

为了使电池填充状态增大或缩小,当然必须添加更多逻辑。