我正在3x3网格上构建一个游戏,当用户将鼠标悬停在按钮上时,它必须在控制台上记录它们所在的块,但它的注册方式只是由于{{1}价值是一样的。
这是代码:
y
我在if(b1R.contains(x, y)){
// arr.add("1");
Log.d("block", "1");
} else if(b4R.contains(x,y)){
// arr.add("4");
Log.d("block", "4");
} else if(b7R.contains(x,y)){
// arr.add("7");
Log.d("block", "7");
}
if(b2R.contains(x,y)){
// arr.add("2");
Log.d("block", "2");
} else if(b8R.contains(x,y)){
// arr.add("8");
Log.d("block", "8");
} else if(b5R.contains(x,y)){
// arr.add("5");
Log.d("block", "5");
}
if(b3R.contains(x,y)){
// arr.add("3");
Log.d("block", "3");
} else if(b6R.contains(x,y)){
// arr.add("6");
Log.d("block", "6");
} else if(b9R.contains(x,y)){
// arr.add("9");
Log.d("block", "9");
}
语句中有这样的原因,否则它会记录同一列中的所有3个块(1,4,7或2,5,8或3,6,9)当我将鼠标悬停在1个按钮上时。
b1R代表按钮1矩形,它设置如下(b1是33网格上的图像按钮1):
if else if
目前,当我将鼠标悬停在左栏(左栏中的任何栏)上时,它只返回1,而对于任何列都是相同的。我怎么能通过这个错误/问题?
更新
我得出结论,所有的块都有相同的坐标,我无法弄清楚为什么......
这是代码:
b1R = new Rect(b1.getLeft(), b1.getTop(), b1.getRight(), b1.getBottom());