gpt4 book ai didi

android - ShapeDrawable(来自 PathShape)未绘制在正确的坐标上

转载 作者:行者123 更新时间:2023-11-29 16:16:22 26 4
gpt4 key购买 nike

我正在尝试创建一个绘制以下路径的 ShapeDrawable:

Path path = new Path();
path.moveTo(50, 20);
path.lineTo(0, 50);
path.lineTo(50, 100);

ShapeDrawable shapeDrawable = new ShapeDrawable(new PathShape(path, someNumber ,someNumber ));

然后我将 shapeDrawable 作为 Layer drawable 的顶层,如下所示:

Drawable layers[] = new Drawable[2];
layers[0] = res.getDrawable(R.drawable.crawford01);
layers[1] = shapeDrawable;

LayerDrawable layerDrawable = new LayerDrawable(layers);
view.setImageDrawable(layerDrawable);

现在的问题是路径不是从 (50,20) 开始的,当您更改构造 shapeDrawable 的 somenumber 时,它会以我不理解的方式跳跃。

感谢您提供的任何帮助或文档。

最佳答案

在定义 PathShape 时,“someNumber”属性实际上非常重要,而且并非微不足道。它们是路径的“标准”宽度和高度,实质上定义了路径的边界,并直接与您在 PathShape 构造函数中指定的定义路径的坐标相关 here .

另一个重要的一点是,就 PathShape 而言,您用来定义 Path 的坐标不是绝对坐标,而是与标准宽度相结合和高度来计算缩放时形状的显示方式。例如,以下两个 PathShape 本质上是相同的。

public Path getPath1 {
Path path = new Path();
path.lineTo(0, 1);
path.lineTo(1, 0);
path.close();
return path;
}

public Path getPath2 {
Path path = new Path();
path.lineTo(0, 10);
path.lineTo(5, 0);
path.close();
return path;
}

PathShape shape1 = new PathShape(getPath1(), 1, 1);
PathShape shape2 = new PathShape(getPath2(), 5, 10);

关于android - ShapeDrawable(来自 PathShape)未绘制在正确的坐标上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9133051/

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