2014-09-30 2 views
1

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

На gestureDetector «s onFling метод, который я начал перевод анимации на просмотр

@Override 
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
float velocityY) { 

mX = e2.getX(); 
mY = e2.getY(); 

TranslateAnimation transA = new TranslateAnimation(
        e1.getX(),e2.getX(),e1.getY(),e2.getY()); 

transA.setDuration(1000); 
transA.setAnimationListener(MainActivity.this); 
mBtn.startAnimation(transA); 

return super.onFling(e1, e2, velocityX, velocityY); 
} 

перевод анимация работает хорошо, но после того, как точки зрения анимации остается на его исходное положение. Чтобы переместить вид на место назначения я устанавливаю вид х & свойство у Мх и Му

@Override 
public void onAnimationEnd(Animation animation) { 
mBtn.setX(mX); 
mBtn.setY(mY); 
} 

, но это не работает должным образом. пожалуйста, помогите, если есть какой-либо другой способ достичь этого, пожалуйста, дайте мне знать.

ответ

0

Есть ли кнопка, которая тоже перемещается? Я вижу mBtn. Обратите внимание, что анимация вида только преобразует место, где отображается изображение, а не там, где оно на самом деле (следовательно, зона с возможностью нажатия кнопки не будет перемещаться с помощью кнопки). Вы можете попробовать сделать transA.setFillAfter (true), что должно помешать ему вернуться к исходной позиции, но я считаю, что область с клики останется неизменной. Следовательно, вы должны попробовать сделать анимацию свойств, так как она обновит свойства представления, а не только там, где она будет нарисована. Выполнение viewpropertyanimator может быть проще всего при анимации x и y. Вы можете прочитать здесь: http://developer.android.com/guide/topics/graphics/prop-animation.html

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