如何在屏幕中检查对象?

时间:2012-03-02 06:14:39

标签: android android-animation

我是Android的初学者。我在Activity中开发一个动画游戏(不使用画布或表面视图,不绘制任何东西)。我面临的一个问题是 - 当车辆从屏幕的左侧移动到右侧时,我想执行一些任务,直到车辆在屏幕上可见。但是,我无法以正确的方式做到这一点。我怎样才能知道车辆在屏幕上是否可见,以及当它穿过屏幕时? 为此我直到现在才使用这段代码 -

 <?xml version="1.0" encoding="utf-8"?>
 <translate xmlns:android="http://schemas.android.com/apk/res/android"
  android:fromXDelta="-50%"
  android:toXDelta="170%"
  android:fromYDelta="0%"
  android:toYDelta="0%" 
  android:duration="6000" 
  android:zAdjustment="bottom"
 />

并在Activity as -

中实现它
    final Animation a = AnimationUtils.loadAnimation(this, R.anim.translate);
      a.reset();
      vehicleView.setImageResource(R.drawable.benz_rock_1);
      vehicleView.startAnimation(a);

现在如果汽车在屏幕上或屏幕外,我该怎么办?对不起我的英文......

1 个答案:

答案 0 :(得分:2)

我看到了两种可能的解决方案

您可以使用View.getGlobalVisibleRect。如果您的视图在屏幕中,则返回true,因此您可以轻松地执行任何操作。

或者您可以使用View.getLocationOnScreen(Int[] location)。并且如文档中所述:

  

定位一个包含坐标

的两个整数数组

您可以使用这两种方法中的任何一种来检测它是否在屏幕上!

希望它有所帮助!