我在我自己的视图扩展上在中心画了一个圆圈(+ 一些我会省略的)。然后我将它添加到我的布局中,并在 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);
}});