gpt4 book ai didi

java - Android - 如何以编程方式获取 SVG 的 Path 对象?

转载 作者:行者123 更新时间:2023-12-01 16:21:26 26 4
gpt4 key购买 nike

我正在尝试在 Android 中的 Canvas 上进行 mask 。我可以对特定形状执行此操作,如下所示。

  @Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas );
Paint mPaint = new Paint();
mPaint.setColor(getCollageBackgroundColor());
mPaint.setStyle(Paint.Style.FILL);
mPaint.setAntiAlias(true);

Path clipPath = new Path();
clipPath.addRoundRect(new
RectF(getPiecePadding()+100,getPiecePadding()+100,getCollageWidth()-
getPiecePadding()-100,getCollageHeight()-getPiecePadding()-100),500,530 ,
Path.Direction.CW);
clipPath.setFillType(Path.FillType.INVERSE_EVEN_ODD);
canvas.drawPath(clipPath,mPaint);
}

上面的代码是一个圆形的 mask 。我希望能够对任何 vectorDrawable 文件执行此操作。有没有办法在 onDraw 中获取此可绘制对象的 Path 对象?

最佳答案

终于找到解决办法了。我回答我自己的问题是为了将来遇到同样问题的人的利益。

我的解决方案不是直接解决方案。我正在复制 SVG 中的路径字符串。我找到了一个叫 Sharp 的图书馆。该库能够从字符串生成路径对象。这是我的代码:

String s= "M0,0h24v24h-24z";
Path path = Sharp.loadPath(s);

关于java - Android - 如何以编程方式获取 SVG 的 Path 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62263332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com