0

Я хочу знать, как перемещать представление сверху вниз непрерывно без анимации. Я спрашиваю об этом, потому что я хочу получить позицию представления на каждом шагу, чтобы я мог проверить, есть ли какое-либо столкновение между этим представлением и любым другим видом.Перемещение вида сверху вниз непрерывно без анимации в Android

С анимацией вы можете перемещать (не точно перемещать) вид из одной позиции в другую (класс Animator), но анимация создает иллюзию для пользователя, что он движется, но его позиция фиксируется все время. Так что это невозможно сделать с помощью анимации?

Второй подход увеличивает положение обзора. Я применил этот метод в onCreate(). Если я использовал его без Thread.sleep(50), то активность не отображает представление, если я применил его с Thread.sleep(50), тогда активность не начинается в течение некоторого периода времени.

ответ

0

Решил проблему с помощью ValueAnimator: -

CodeSnippet: -

va=ValueAnimator.ofFloat(0.0f,size.y); 
va.setDuration(5000); 
va.setRepeatCount(va.INFINITE); 
va.setRepeatMode(va.REVERSE); 
va.start(); 
va.addUpdateListener(new AnimatorUpdateListener() { 
    @Override 
    public void onAnimationUpdate(ValueAnimator animation) { 
     // TODO Auto-generated method stub 
       bullet[0].setTranslationY((Float) va.getAnimatedValue());   
        Rect R11=new Rect(bullet[0].getLeft(),bullet[0].getTop()+(int)bullet[0].getTranslationY(),bullet[0].getRight(),bullet[0].getBottom()+(int)bullet[0].getTranslationY()); 
         Rect R21=new Rect(ball.getLeft(), ball.getTop(), ball.getRight(), ball.getBottom()); 
         if(R11.intersect(R21)) 
         va.cancel(); 
    } 
}); 
1

Анимация объектов (подклассы класса Animator) фактически перемещает представление, поскольку они обновляют фактическое свойство представления. Это анимация вида (подклассы класса анимации), которые не перемещают фактический вид, а вместо того, чтобы он отображался пользователю. Источник: http://developer.android.com/guide/topics/graphics/prop-animation.html С системой анимации свойств эти ограничения полностью удалены, и вы можете анимировать любое свойство любого объекта (Представления и не-Представления), и сам объект фактически изменяется.

Вы также не должны начинать перемещение в методе onCreate, поскольку все еще инициализируется (обновляется onwindowfocuschanged). Также, если вы вызываете thread.sleep, вы идете в сон основной поток пользовательского интерфейса, а затем замораживаете приложение на время.

Смежные вопросы