我发现setPivotX
(also setPivotY
) 在 Android 中很奇怪。如果在视图的比例设置为 1.00f 时设置枢轴,则不会发生任何事情(只是枢轴更改)。但是,如果比例不等于 1.0f(例如setScaleX(0.9f)
)并且您设置了枢轴,则视图相对(?)移动到新的枢轴。是不是很奇怪?我知道水平和垂直位置(平移)与枢轴值无关,但为什么视图以 1.0f 以外的比例因子移动?
请检查是否有缩放部分。
public class ScaleView extends View {
private final ScaleGestureDetector mScaleGestureDetector;
public ScaleView(Context context, AttributeSet attrs) {
super(context, attrs);
//setScaleX(0.9f);
//setScaleY(0.9f);
mScaleGestureDetector = new ScaleGestureDetector(context, new ScaleGestureDetector.OnScaleGestureListener() {
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
// does nothing intentionally
}
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
setPivotX(detector.getFocusX());
setPivotY(detector.getFocusY());
return true;
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
return false;
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event) {
mScaleGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
}
如何设置视图的相同位置,即在枢轴更改之前?