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);
}});
4

1 回答 1

0

width = width - 50;我发现了问题,我的代码中隐藏了一条偷偷摸摸的行。

于 2013-10-14T08:52:11.757 回答