在中心画布上绘制圆圈并旋转视图

时间:2013-10-11 11:53:42

标签: android android-canvas

我在我自己的视图扩展中画了一个圆圈(还有一些我将要遗漏的东西)。然后我将它添加到我的布局中,并在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 个答案:

答案 0 :(得分:0)

我发现了这个问题,width = width - 50;的一个偷偷摸摸的行隐藏在我的代码中......