2015-09-19 3 views

ответ

0

Чтобы использовать перевести класс анимации

View view1 = (View)findViewById(R.id.view_id); 

    //defining an animation to scroll the view and the direction 
     TranslateAnimation mAnimation = new TranslateAnimation(view1.getX(),180,0,0); 
     // time it will take to finish reach destination, this means how fast the view will translate 
     mAnimation.setDuration(1000); 
     // repetition 
     mAnimation.setRepeatMode(Animation.RESTART); 
     mAnimation.setRepeatCount(Animation.ABSOLUTE); 
     view.setAnimation(mAnimation); 

TranslateAnimation(value1, value2, value3, value4) указать начальную координату и конечную координату точки зрения. это также подразумевает направление перевода. view1.getX() получит текущую позицию.

Если вы не хотите использовать Translate-класс, вы можете обновить положение времени с регулярным интервалом. вероятно, каждую секунду. вы можете использовать этот код

View view = new View(this); 
    while(true){ 
     sleep(1000); 
     view.setX(view.getX() + 1); 

     // define a condition to stop; 

    } 

view.getX() возвращает текущую позицию зрения, то увеличить его значение на регулярные промежутки времени (1 сек), каждый раз, когда линия Казнить получить ток местоположение и увеличить его. это должно быть сделано в потоке, потому что поток пользовательского интерфейса может не справиться с этим эффективно.

+0

в вашем случае, view2 будет отображаться до и после view1, но мне нужно только после – boroloro

+0

поместить два вида друг на друга, просто начать перевод с позиции cuurent, не нужно начинать с левого край, он может начинаться с любого места. поэтому у вас есть параметр '(value1, value2, value3, value4)' –

+0

view2 больше, чем view1, поэтому, если я начну транслировать из view1, тогда часть view2 будет видна с левой стороны view1 – boroloro

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