Android UI элемент анимации - PullRequest
       0

Android UI элемент анимации

6 голосов
/ 06 февраля 2012

Я пытаюсь анимировать элементы пользовательского интерфейса.Я хотел бы переместить editText и Button из середины в верхнюю часть экрана и отобразить результаты вызова http под ними в виде таблицы.Было бы замечательно, если бы кто-нибудь мог указать мне правильное направление, на данный момент я не знаю, должен ли я использовать для этого Java или XML.

Заранее спасибо.

Ответы [ 2 ]

8 голосов
/ 06 февраля 2012

Используйте платформу перевода, чтобы добиться этого, это работает как:

TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)

Итак, вам нужно написать свой код для перемещения вида в направлении оси Y, как показано ниже:

 mAnimation = new TranslateAnimation(0, 0, 0, 599);
    mAnimation.setDuration(10000);
    mAnimation.setFillAfter(true);
    mAnimation.setRepeatCount(-1);
    mAnimation.setRepeatMode(Animation.REVERSE);
    view.setAnimation(mAnimation);

Здесь может быть что угодно, textview, imageView и т. Д.

1 голос
/ 11 октября 2014

принятый ответ вызвал ошибку в моем коде, фрагмент кода ниже почти идентичен принятому ответу и работал, не вызывая ошибок, чтобы сдвинуть объект с экрана.мне нужно было, чтобы жесты, привязанные к клавиатуре, тоже «скользили» и переключались с TranslateAnimation на ObjectAnimator (второй блок кода ниже).

final LinearLayout keyPad = (LinearLayout)findViewById(R.id.keyPad);

moveKeyPadUp(keyPad);

private void moveKeyPadUp(LinearLayout keyPad){
        Animation animation = new TranslateAnimation(0,0,0,-500);
        animation.setDuration(1000);
        animation.setFillAfter(true);
        keyPad.startAnimation(animation);
}

private void moveKeyPadUpdated(LinearLayout keyPad){
        ObjectAnimator mover = ObjectAnimator.ofFloat(keyPad,"translationY",0,-500);
        mover.setDuration(300);
        mover.start();
}
...