Android 5 переход активности на нижней API
Каждый раз, когда я ищу, я сталкивался с этим "переходом активности Android 5(L)", доступным только на API >= 21
,
это нормально, но я вижу какое-то приложение, например QuickPic
а также google inbox
которые используют аналогичный переход, а также работают на более низких API, так как это приложение может сделать такую вещь?
что я сделал?
1) много поиска:)
2) играть с ActivityOptionsCompat
это относится только к api >= 21, вот так:
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, transitionView, DATA.EXTRA_PASSED_JSON);
Intent intent = new Intent(activity, PhotoViewerActivity.class);
intent.putExtra(DATA.EXTRA_PASSED_JSON, json);
ActivityCompat.startActivity(activity, intent, options.toBundle());
РЕДАКТИРОВАТЬ (вопрос помечен как дубликат): в этом случае он отличается от других вопросов, потому что я сказал, что есть другое приложение, которое выполняет этот переход в более низких API, и я хочу знать, как они это делают.
2 ответа
Мы добавили много вещей в Lollipop, чтобы заставить переходы активности работать хорошо. Можно выполнить переходы активности вручную (в более ранних версиях), но в некоторых случаях вы столкнетесь с проблемами, и обратный переход, вероятно, будет работать только в простейшем случае. У Чета Хаазе есть кое-что об этом здесь.
Анимации между фрагментами были возможны и раньше, хотя API не так прост в использовании, как в Фрагментных переходах Lollipop.
Мы много думали об обратном переносе переходов на более ранние версии в библиотеке поддержки. Это все еще может случиться. Если так, то мы также сможем что-то сделать для переходов фрагментов.
Как вы сами сказали, библиотека поддержки не поддерживает (все) переходы в версиях Android ниже 5.0. Есть, однако, несколько альтернатив:
Неофициальные библиотеки совместимости
https://github.com/andkulikov/transitions-everywhere
https://github.com/takahirom/PreLollipopTransition
https://github.com/lgvalle/Material-Animations
Android KitKat
http://www.doubleencore.com/2013/11/new-transitions-framework/ и образец, найденный в папке примеров SDK.