我有一个名为的自定义视图MyView,它有两个锚点。我希望能够从其锚点旋转此视图,其中一个锚点充当旋转中心,而用户拖动另一个锚点。
为了简单起见,我画了一条线,但实际上,我会画别的东西。步骤如下:
setPivotX()和使另一个锚点成为旋转中心setPivotY()。这是相关代码:
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
tapX = event.getX();
tapY = event.getY();
if (anchorRect1.contains(tapX, tapY)) {
viewState = ViewState.ANCHOR1;
setPivotX(anchorRect2.centerX());
setPivotY(anchorRect2.centerY());
} else if (anchorRect2.contains(tapX, tapY)) {
viewState = ViewState.ANCHOR2;
setPivotX(anchorRect1.centerX());
setPivotY(anchorRect1.centerY());
} else {
viewState = ViewState.VIEW;
}
break;
}
case MotionEvent.ACTION_MOVE: {
switch (viewState) {
//Anchor 1 clicked
case ANCHOR1: {
float angle = (float) Math.toDegrees(Math.atan2(event.getY() - anchorRect2.centerY(), getWidth()));
setRotation(getRotation() …Run Code Online (Sandbox Code Playgroud)