Подтвердить что ты не робот

Новая активность в Android "введите со стороны"

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

Чтобы объяснить немного лучше: на моем Android-телефоне я могу пронести по экрану с домашней музыкой вправо, а затем вводить поток друзей слева и проходить на экране. Я хочу сделать это в своем приложении с кнопками, это "скользящий" я после. Спасибо!

4b9b3361

Ответ 1

В ОС Android 2.0 или более поздней версии я думаю, вы можете использовать метод OverridePendingTransition(), чтобы обеспечить вид перехода между анимациями действий, которые вы ищете.

Во-первых, определите пару ресурсов анимации в /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>

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

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

Это должно обрабатывать анимацию перехода для запуска активности.

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

Если у вас есть элемент управления пользовательским интерфейсом, который завершает это действие и вызывает Activity.finish(), вы можете сразу добавить переопределитьPendingTransition().

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

@Override
public void onBackPressed() 
{

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

Ответ 2

Вы можете использовать файл left_slide_out.xml(просто измените toXDelta в Josh right_slide_out.xml, чтобы прочитать -100% p), чтобы старая активность исчезла слева (и также должна иметь одинаковую продолжительность для обеих анимаций).

Ответ 3

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

Ответ 4

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

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