Минимизировать активность в предыдущих действиях в Android
Я занимаюсь разработкой компонента видеозвонка, который поддерживает обмен мгновенными сообщениями. Я хочу добавить опцию минимизации экрана видеовызова на нажатой спине и вернуться к обмену сообщениями activity
сделать оба одновременно (WhatsApp, как функция). Проблема в том, что я не могу найти решение этой проблемы, так как возвращаюсь к предыдущему activity
закончу текущий. Так как я могу override
мой onBackpressed()
так что я могу свести к минимуму вместо завершения экрана вызова activity
(скажем, добавить его в уведомление) и вернуться к обмену сообщениями activity
?
1 ответ
То, что вы хотите сделать, называется " картинка в картинке".
Android 8.0 (уровень API 26) позволяет запускать действия в режиме "картинка в картинке" (PIP). PIP - это особый тип многооконного режима, который в основном используется для воспроизведения видео. Это позволяет пользователю просматривать видео в небольшом окне, прикрепленном к углу экрана, во время навигации между приложениями или просмотра содержимого на главном экране.
Очень минималистичный пример:
1) Укажите в вашем AndroidManifest
файл, деятельность которого поддерживает PIP:
<activity
android:name=".VideoActivity"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
android:resizeableActivity="true"
android:supportsPictureInPicture="true"/>
2) Запустите режим PIP в ответ на какое-либо действие пользователя, например, в onBackPressed()
:
override fun onBackPressed() {
// Ideally you would want to enter PIP while a video is playing, so:
val isVideoPlaying = // have a condition here that holds true while the video is playing
if (isVideoPlaying) {
enterPictureInPictureMode()
} else {
super.onBackPressed()
}
}