2013-10-11 215 views
0

我在中心繪製了一個圓圈(還有一些我會忽略),這是我自己對視圖的擴展。然後我將它添加到我的佈局中,並在onClickListener中增加.setRotation();但是我的圈子並沒有圍繞它的中心旋轉,而是稍微偏離了一點。爲什麼?在中心畫布上畫圓圈並旋轉視圖

我曾嘗試將填充和邊距設置爲0,但不會改變任何內容。

小例子:

public class MyCircleView extends View 
{ 
private int width = 0; 
private int height = 0; 

public MyCircleView(Context context) 
{ 
super(context); 
} 

@Override 
protected void onSizeChanged(int w, int h, int oldw, int oldh) { 
super.onSizeChanged(w, h, oldw, oldh); 
width = w; 
height = h; 
} 

@Override 
protected void onDraw(Canvas canvas) { 
canvas.drawCircle(width/2, height/2, width/2, new Paint()); 
} 
} 

然後在主要活動:

MyCircleView circle = new MyCircleView(); 
myLayout.addView(circle); 

circle.setOnClickListener(new OnClickListener() { 
public void onClick(View v) { 
v.setRotation(v.getRotation()+10); 
}}); 
+1

難道一個舍入問題?也許寬度不能被2整除,從而圓不完全在中間 –

+0

然後,它應該只有1個像素的差異。它遠不止於此。 – Niels

回答

0

我發現這個問題的width = width - 50;偷偷摸摸線在我的代碼躲在..