2014-03-03 28 views
0

可以向我解释一下关于rect.offsetTo()?rect.offsetTo arrtibute

我的意思是,它是否在新位置绘制矩形?或者只将顶部和左侧的位置设置为新的和相对于矩形的底部和右侧?

例如:

如果我有一个矩形,

Canvas c=null; 
    Paint p=new Paint(); 
    p.setColor(Color.BLACK); 
    Rect r=new Rect(10,10,20,20); 
    c.drawRect(r,p); 

    i=0; 
    while(isRunning){ 
     i=i+5; 
     r.offsetTo(10+i, 10+i); 
    } 

将我现在的矩形是移动屏幕上看到了什么?

+0

移动???设置Rect坐标系必须做些什么? – pskink

+0

如果它为循环的每一轮设置了一个新的corrdinates,它看起来像rect正在移动 – Omer

回答

1

正如Android文档定义:

rect.offsetTo(int newLeft, int newTop) 

Offset the rectangle to a specific (left, top) position, keeping its width and height the same. 

因此,要回答你的问题,offsetTo方法将吸引你的RECT由newLeft指定一个新的位置,从画布的左侧坐标(距离您的矩形的左侧)和newTop坐标(距画布顶部到矩形顶部的距离)。

Documentation

+0

,并且您还意味着它将删除最后一个位置的rect ..? – Omer

+0

它不会删除矩形,它只是改变现有矩形的坐标。所以,如果你用你的初始矩形绘制一个矩形,然后调用offsetTo,然后使你的画布失效并重新绘制...然后矩形将被绘制新的矩形...因此,一个新的矩形将被绘制,旧的将被绘制不见了。 –

+0

你能告诉我如何重绘canavs吗? – Omer