加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 移动图形Path对象

发布时间:2020-12-15 04:54:46 所属栏目:Java 来源:网络整理
导读:特别是在 Java,Android中,如何将Path对象转换为100个像素?就像在C#中一样,我会使用以下代码来执行此操作: // Create a path and add and ellipse.GraphicsPath myPath = new GraphicsPath();myPath.AddEllipse(0,100,200);// Draw the starting position t
特别是在 Java,Android中,如何将Path对象转换为100个像素?就像在C#中一样,我会使用以下代码来执行此操作:

// Create a path and add and ellipse.
GraphicsPath myPath = new GraphicsPath();
myPath.AddEllipse(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个像素,我需要做什么?

解决方法

它几乎是一样的:

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

我没有测试它,只是看了API.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读