我正在尝试使用图像按钮使图像视图向上/向下/向左/向右移动。我能够使图像左右移动,但是上下都不起作用。
我尝试过更改+/-符号,移动图像的增量长度以及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()函数中减去,但这没有任何意义。
答案 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 :