移动图形Path对象过图形、对象、Path

2023-09-06 14:06:17 作者:琳琅女称霸全服

在Java中,Android的特别,我怎么把一个Path对象超过100像素?像在C#中,我会用下面的code要做到这一点:

In Java, Android specifically, how do I transform a Path object over 100 pixels? Like in C#, I would use the following code to do this:

// Create a path and add and ellipse.
GraphicsPath myPath = new GraphicsPath();
myPath.AddEllipse(0, 0, 100, 200);

// Draw the starting position to screen.
e.Graphics.DrawPath(Pens.Black, myPath);

// Move the ellipse 100 points to the right.
Matrix translateMatrix = new Matrix();
translateMatrix.Translate(100, 0);
myPath.Transform(translateMatrix);

// Draw the transformed ellipse to the screen.
e.Graphics.DrawPath(new Pen(Color.Red, 2), myPath);

我如何做到这一点在Android中?我已经有我的Path对象:

How do I do this in Android? I already have my Path object:

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    Paint pnt = new Paint();
    Path p = new Path();    

    pnt.setStyle(Paint.Style.STROKE);
    pnt.setColor(Color.WHITE);

    p.moveTo(97.4f, 87.6f);
    p.lineTo(97.4f, 3.8f);

    p.lineTo(-1.2f, 1.2f);
    p.lineTo(-0.4f,-0.4f);

    p.lineTo(-0.4f,87f);

    p.lineTo(97.4f, 87.6f);
    p.close();          

    canvas.drawPath(p, pnt);            
}

你这是什么,我需要为了做我的Path对象100像素移位?

What do you I need to do in order to shift my Path object over 100 pixels?

推荐答案

这几乎是相同的:

Matrix translateMatrix = new Matrix();
translateMatrix.setTranslate(100,0);
p.transform(translateMatrix);

我没有测试它,只是看着API。

I didn't test it, just looked into API.