Как установить положение изображения в картинке (PiP) в приложении Android TV?
Есть ли способ поместить окно "картинка в картинке" (PiP) в верхний правый угол (или в другое место) вместо правого нижнего угла экрана (по умолчанию)? или программно установить точное местоположение?
1 ответ
См . ниже коммит, этот параметр может помочь "config_defaultPictureInPictureGravity"
и вы можете обратиться к https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/view/Gravity.java;l=45, чтобы узнать необходимое значение
например Gravity.TOP | Gravity.RIGHT - 0x35
commit 06868c37df46c0c973a96a0a25b1f301384db4be
Author: Winson <winsonc@google.com>
Date: Wed Oct 12 21:08:18 2016 -0700
Changing initial PIP bounds specifications.
- Change from a absolute bounds to a size, gravity and inset to
allow easier tweaking of initial pinned stack bounds.
Test: android.server.cts.ActivityManagerPinnedStackTests
Test: #testPinnedStackDefaultBounds
Test: #testPinnedStackMovementBounds
Change-Id: I82a102bbd2d83259c6c84915071d1a16728e3aa7
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index c40436a5bda..30dcfb081d8 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -2482,8 +2482,17 @@
-->
<integer name="config_navBarOpacityMode">0</integer>
- <!-- Default bounds [left top right bottom] on screen for picture-in-picture windows. -->
- <string translatable="false" name="config_defaultPictureInPictureBounds">"0 0 100 100"</string>
+ <!-- Default insets [LEFT/RIGHTxTOP/BOTTOM] from the screen edge for picture-in-picture windows.
+ These values are in DPs and will be converted to pixel sizes internally. -->
+ <string translatable="false" name="config_defaultPictureInPictureScreenEdgeInsets">10x10</string>
+
+ <!-- Max default size [WIDTHxHEIGHT] on screen for picture-in-picture windows to fit inside.
+ These values are in DPs and will be converted to pixel sizes internally. -->
+ <string translatable="false" name="config_defaultPictureInPictureSize">216x135</string>
+
+ <!-- The default gravity for the picture-in-picture window.
+ Currently, this maps to Gravity.BOTTOM | Gravity.RIGHT -->
+ <integer name="config_defaultPictureInPictureGravity">0x55</integer>
Я думаю, что нет документации по изменению положения окна " картинка в картинке", если вы не перетащите само окно.
Окно PIP появляется в самом верхнем слое экрана, в углу, выбранном системой. Вы можете перетащить окно PIP в другое место. При нажатии на окно появляются два специальных элемента управления: полноэкранный переключатель (в центре окна) и кнопка закрытия ("X" в верхнем правом углу).