Android - 确保ImageView在屏幕上停留

时间:2017-01-08 20:51:41

标签: java android imageview

我有一个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方法。有什么东西我忘了做,还是有更简单的方法来解决这个问题? 感谢

1 个答案:

答案 0 :(得分:2)

有一种更简单的方法可以解决问题。使用imageView.getLocationOnScreen()在屏幕上获取视图的x和y位置。然后你可以检查并查看是否再次移动它会导致你有一个负X(从屏幕向左移动)或者如果X + imageView.getWidth()> screen_width(移到右边)。