#java #android #path #matrix
#java #Android #путь #матрица
Вопрос:
В Java, в частности, Android, как мне преобразовать объект Path размером более 100 пикселей? Как и в C #, я бы использовал следующий код для этого:
// 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:
@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 пикселей?
Ответ №1:
Это почти то же самое:
Matrix translateMatrix = new Matrix();
translateMatrix.setTranslate(100,0);
p.transform(translateMatrix);
Я не тестировал это, просто заглянул в API.
Ответ №2:
Я думаю, Path.offset(float dx, float dy)
это то, что вы ищете.