我是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);
现在如果汽车在屏幕上或屏幕外,我该怎么办?对不起我的英文......
答案 0 :(得分:2)
我看到了两种可能的解决方案
您可以使用View.getGlobalVisibleRect。如果您的视图在屏幕中,则返回true,因此您可以轻松地执行任何操作。
或者您可以使用View.getLocationOnScreen(Int[] location)。并且如文档中所述:
定位一个包含坐标
的两个整数数组
您可以使用这两种方法中的任何一种来检测它是否在屏幕上!
希望它有所帮助!