Android: В чем разница между setTransform () и setScaleX / Y () в TextureView? - PullRequest
0 голосов
/ 10 апреля 2020

Я использую TextureView для отображения графического видео контента.

Поскольку MediaCode c будет отображать контент, занимающий весь TextureView, поэтому мне нужно масштабировать его, чтобы сохранить пропорции оригинала content.

Мы знаем, что TextureView имеет свой собственный метод преобразования:

setTransform(android.graphics.Matrix)

А также два других метода, унаследованных от класса View:

setScaleX (float scaleX)
setScaleY (float scaleY)

Оба могут быть используется для достижения той же цели.

Однако я заметил некоторую разницу в конечном результате.

Использование метода setScaleX / Y () идеально.

Но при использовании setTransform () в нижней части отображаемого содержимого на экране появляются некоторые «дублированные строки пикселей», если разрешение содержимого «не хорошее», например 488 x 345. Это Похоже, что к отображаемому содержимому системой добавлены некоторые отступы.

У меня есть следующий снимок экрана:

VideoWithBottomPadding

Может ли кто-нибудь помочь объяснить причину этой разницы? И, если я продолжу использовать метод setScaleX / Y (), есть ли проблемы с производительностью по сравнению с использованием setTransform ()?

Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...