2011-05-16 37 views
3

在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个像素,你需要做什么?

回答

6

这几乎是相同的:

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

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