我有一个 Android 项目,其中有一个 ImageView
,每次按下按钮时它都会向左移动
tButton.setOnTouchListener(new RepeatListener(10, 10, new View.OnClickListener()
{
@Override
public void onClick(View view)
{
player1.setX(player1.getX() - 1);
}
}));
我不希望这个 ImageView
离开屏幕,因此我尝试将另一个 ImageView
添加到边缘,并尝试使用
tButton.setOnTouchListener(new RepeatListener(10, 10, new View.OnClickListener()
{
@Override
public void onClick(View view)
{
Rect p1 = new Rect();
player1.getHitRect(p1);
Rect sL = new Rect();
lSide.getHitRect(sL);
if(Rect.intersects(p1, sL))
{
player1.setX(player1.getX() + 100);
}
else
{
player1.setX(player1.getX() - 1);
}
}
}));
问题是,在两个对象感兴趣之后,onClick
方法似乎再也没有被调用过。有什么我忘记做的事情,或者有更简单的方法来解决这个问题吗?
谢谢
最佳答案
有一个更简单的方法可以解决这个问题。使用 imageView.getLocationOnScreen() 获取屏幕上 View 的 x 和 y 位置。然后您可以检查并查看再次移动它是否会导致出现负 X(从屏幕向左移动)或者 X+imageView.getWidth()>screen_width(从屏幕向右移动)。
关于java - Android - 确保 ImageView 保留在屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41537756/