Исходные значения кадрирования и рамки в выводе dumpsys SurfaceFlinger

Я работаю над проектом на SurfaceFlinger. Итак, когда область "source-crop" отличается от области "frame" (это значения, которые отображаются в выводе dumpsys SurfaceFlinger). Другими словами, когда / почему содержимое слоя (отображаемое приложением) масштабируется. Или они отображаются самим приложением после масштабирования. Если нет, то берет ли SurfaceFlinger содержимое слоя, масштабирует его и затем компонует? Кроме того, кто решает прямоугольник "рамки", приложение или SurfaceFlinger?

1 ответ

Решение

См. Документ по графике на уровне системы Android. В частности, в разделе SurfaceView есть подраздел об использовании аппаратного масштабатора, который решает эту проблему, но я рекомендую прочитать его полностью, если вы хотите понять детали.

Большинство контента отображается 1:1 для лучшего качества. Приложения могут выбрать масштабирование SurfaceView по соображениям производительности. Размеры задаются оконным менеджером.

Одной из распространенных ситуаций, в которых выполняется масштабирование, является воспроизведение видео. Обычно вы хотите, чтобы видео занимало как можно большую часть экрана, независимо от того, является ли оно SD или HD контентом.

Другие вопросы по тегам