Как проверить объект на экране? - PullRequest
0 голосов
/ 02 марта 2012

Я новичок в 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 как -

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

Теперь, как я могу получить, если автомобиль на экране или внеэкрана?Извините за мой английский ...

1 Ответ

2 голосов
/ 02 марта 2012

Я вижу два возможных решения для этого

Вы можете использовать View.getGlobalVisibleRect .Он возвращает true, если ваш вид находится на экране, поэтому вы можете легко делать все, что вам нужно.

Или вы можете использовать View.getLocationOnScreen (Int [] location) .И как написано в документации:

location массив из двух целых чисел, в котором хранятся координаты

Вы можете использовать любой из этих двух методов, чтобы определить,экран или нет!

Надеюсь, это поможет!

...