方向按钮在“负”方向上不起作用

时间:2019-06-19 12:21:58

标签: android button imageview

我正在尝试使用图像按钮使图像视图向上/向下/向左/向右移动。我能够使图像左右移动,但是上下都不起作用。

我尝试过更改+/-符号,移动图像的增量长度以及if / else语句,以确定是否移动图像。

 // Move ImageView Up
 case R.id.upBtn: {
     if (img.getY() > 0) {
        img.setY(img.getY() - 25);
    }
}

// Move ImageView Down
case R.id.downBtn: {
    if (img.getY() < 950) {
        img.setY(img.getY() + 25);
    }
}

// Move ImageView Left
case R.id.leftBtn: {
    if (img.getX() > 0) {
        img.setX(img.getX() - 25);
    }
}

// Move ImageView Right
case R.id.rightBtn: {
    if (img.getX() < 2000) {
        img.setX(img.getX() + 25);
    }
}

图像视图应该在所有方向上移动,但不会在向上或向左方向上移动。我删除了if / else语句,以查看它们是否是问题所在,并且对移动图像没有影响。他们只是阻止它离开屏幕。看来我无法从getY()函数中减去,但这没有任何意义。

1 个答案:

答案 0 :(得分:0)

您缺少break语句,因此,一旦匹配case,随后所有case语句的代码也将执行。

尝试:

// Move ImageView Up
case R.id.upBtn: {
     if (img.getY() > 0) {
        img.setY(img.getY() - 25);
    }
}
break;

// Move ImageView Down
case R.id.downBtn: {
    if (img.getY() < 950) {
        img.setY(img.getY() + 25);
    }
}
break;

// Move ImageView Left
case R.id.leftBtn: {
    if (img.getX() > 0) {
        img.setX(img.getX() - 25);
    }
}
break;

// Move ImageView Right
case R.id.rightBtn: {
    if (img.getX() < 2000) {
        img.setX(img.getX() + 25);
    }
}
break;

default :