Вопрос

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

Чтобы объяснить немного лучше: на моем телефоне Android я могу провести вид с домом Meny справа, а затем входить в поток друга слева и проходить на экране. Я хочу сделать это в своем приложении с ButtonClicks, это «скольжение», которое я после. Благодарность!

Это было полезно?

Решение

В Android OS 2.1 или позже я думаю, что вы можете использовать Переопределить транзицию () Метод для обеспечения такого перехода между анимациями действий, которые вы ищете.

Во -первых, определите пару анимационных ресурсов в /res/anim/. Анкет Вот тот, который назван right_slide_out.xml :

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_decelerate_interpolator">
    <translate
        android:fromXDelta="0"
        android:toXDelta="100%p"
        android:duration="500"
    />
</set>

Другой позвонил right_slide_in.xml :

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_decelerate_interpolator">
    <translate
        android:fromXDelta="100%p"
        android:toXDelta="0"
        android:duration="700"
    />
</set>

Затем, когда вы начинаете новое действие, используйте метод переопределения трансранлизации, как в:

startActivity(intent);
overridePendingTransition  (R.anim.right_slide_in, R.anim.right_slide_out);

Это должно справиться с переходной анимацией для начала деятельности.

Для наоборот, когда это занятие заканчивается, и вы возвращаетесь к оригиналу, оно немного туманно.

Если у вас есть какое -то контроль пользовательского интерфейса, который заканчивает эту деятельность и вызывает Activation.finish (), то вы можете просто добавить переопределение transtrantion () сразу после этого.

Чтобы обратиться к случаю, когда пользователь заканчивает деятельность, нажав кнопку на спине, используйте что -то вроде следующего:

@Override
public void onBackPressed() 
{

    this.finish();
    overridePendingTransition  (R.anim.right_slide_in, R.anim.right_slide_out);
}

Другие советы

Вы можете использовать LEATE_SLIDE_OUT.XML (просто измените TOXDELTA в josh's Right_slide_out.xml, чтобы прочитать -100%P), чтобы старая деятельность исчезала слева (а также имеет одинаковую продолжительность для обеих анимаций).

Да, использование намерений - это стандартный способ начать другое занятие, и обычно это упоминает скольжение. Например, StartActivity (новое намерение (это, myNextactivity.class)); сделаю это.

Джемс верен. По умолчанию вы получите скользящую анимацию при запуске нового намерения.

Если вы ищете более индивидуальную анимацию, вы можете использовать Переопределение трансранлизации. Анкет Имейте в виду, что это было добавлено на уровне API 5. Посмотрите на это Демо Для образца использования.

Существует небольшая путаница в отношении анимации ввода и выхода. Для тех, кто все еще размышляет над этим, вот шаблон ..

overridePendingTransition(
    enterAnimationForCalledActivity, 
    exitAnimationForCallingActivity
);

Это, вероятно, должно немного очистить воздух.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top