Похоже, эти 2 телефона имеют разные разрешения экрана.Таким образом, вы должны использовать DP вместо пикселей.Проверьте это сообщение
Размер всплывающего окна .Во-первых, вы должны преобразовать размер диалога в пиксели.Это случайные значения, и они жестко закодированы, но вы также можете взять их из ресурсов или гаркода.
val popUpWidthDp = 200
val popUpHeightDp = 100
val popUpWidthPx = convertDpToPx(popUpWidthDp)
val popUpHeightPx = convertDpToPx(popUpHeightDp)
val popupWindow = PopupWindow(customView, popUpWidthPx, popUpHeightPx, true)
Положение всплывающего окна .Сначала вам нужно конвертировать dp в px, а затем вы можете вычислить позицию всплывающего окна, связанную с размером экрана.
val popUpLeftSideMarginDp = 50
val popUpTopMarginDp = 100
val popUpXPoint = convertDpToPx(popUpLeftSideMarginDp)
val popUpYPoint = convertDpToPx(popUpTopMarginDp)
popupWindow.showAtLocation(linearLayout1, Gravity.CENTER, popUpXPoint, popUpYPoint)
Ознакомьтесь с этим ответом , чтобы понять, как конвертировать dp в пиксели и наоборот.
Если всплывающее окно должно иметь размер и позицию, связанные с размером экрана, вам необходимо изменить эти значения:
popUpHeightPx, popUpWidthPx - размер всплывающего окна
popUpXPoint, popUpYPoint - позиция всплывающего окна
Дайте мне знать, если вам нужно подробное объяснение.