Фон анимации Android (поворот, перевод)

Я делаю свою первую маленькую игру. Я использую анимацию поворота, предоставленную Android. Я пишу этот код в каждом файле класса:

this.overridePendingTransition(R.anim.rotate, R.anim.translate);

это лучший способ или я могу установить это где-то для всего моего приложения? А также, если я использую эту анимацию, новая активность очень хорошо "поворачивается" на экране, но фон становится черным. (Думаю, из-за анимации перевода?!) Как я могу настроить свой собственный фон?

код из анимации перевода:

<?xml version="1.0" encoding="utf-8"?>
<translate>

    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="200%"
    android:toXDelta="0%"
    android:fromYDelta="200%"
    android:toYDelta="0%"
    android:duration="1000"
    android:zAdjustment="top" />

и анимация поворота:

<?xml version="1.0" encoding="utf-8"?>
<rotate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="90"
    android:toDegrees="0"
    android:pivotX="-5%"
    android:pivotY="5%p"
    android:duration="1000" />

1 ответ

абстракция

Текущий способ у вас это:

overridePendingTransition(R.anim.rotate, R.anim.translate);

Лучший способ установить это - либо через абстрактный Activity или композиция, которая больше связана с практикой программирования, чем Android.

Короткое время:

public abstract BaseActivity extends FragmentActivity{
  @Override
  protected onCreate(Bundle savedInstance){
    overridePendingTransition(R.anim.rotate, R.anim.translate);
  }
}

Тогда ваш бетон Activity расширяет это.

public class MyActivity extends BaseActivity{}

Анимация

Таким образом, текущая настройка означает, что ваш новый Activity Повернется, и ваша старая активность (должна) перевести.

Видно, что перевод вашей старой активности из (не в) анимации немного неправильный. Правильная анимация перевода для перевода будет выглядеть примерно так:

<translate
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:fromXDelta="0%"
  android:toXDelta="100%"
  android:fromYDelta="0%"
  android:toYDelta="0%"
  android:duration="1000" />

Который будет переводить текущую деятельность с центрального экрана на слайд вправо.

Также игнорируйте zAdjustment по умолчанию ваша новая активность начинается поверх старой, вы не хотите оставлять старую сверху.

Другие вопросы по тегам