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);
}});
難道一個舍入問題?也許寬度不能被2整除,從而圓不完全在中間 –
然後,它應該只有1個像素的差異。它遠不止於此。 – Niels