Как установить точный размер в пикселях для компонента в выходных данных приложения, если разрешение экрана на устройстве было переопределено? - PullRequest
0 голосов
/ 21 октября 2019

У меня есть Android Tv Box и собственное приложение с управлением плеером на главном экране, и теперь мне нужно точно установить размер проигрывателя 256x128 пикселей для отображения видео на светодиодной панели.

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

const getStyleForVideoControl = (x, y, width, height) => {
    const devicePixelRatio = PixelRatio.get();

    function pixelsToDp(pixels) {
        return pixels / devicePixelRatio;
    }

    return {
        position: 'absolute',
        left: pixelsToDp(x),
        top: pixelsToDp(y),
        width: pixelsToDp(width),
        height: pixelsToDp(height)
    };
}

Этот код хорошо работает с различными DPI, но не работает должным образом, когда я переопределяю разрешение устройства. Например, я получаю фактический размер компонента проигрывателя 342x171 вместо 256x128 пикселей при переопределении выходного разрешения экрана 800x1280 -> 1080x1920:

adb shell wm size

Physical size: 800x1280
Override size: 1080x1920

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

...