Я создаю простой видеоплеер для своего приложения. Я использую Exoplayer
<com.google.android.exoplayer2.ui.PlayerView
..... />
Я хочу дать это представление layoutParams во время выполнения. Я даю эти параметры как
private void resizeVideo() {
ISize videoSize = new SizeFromVideoFile(String.valueOf(currentPlayingVideoUri));
Point point = new Point();
getWindow().getWindowManager().getDefaultDisplay().getSize(point);
ViewGroup.LayoutParams layoutParams = playerView.getVideoSurfaceView().getLayoutParams();
if (getSizeCounter() == 1) {
//100 %
layoutParams.height = videoSize.height();
layoutParams.width = videoSize.width();
} else if (getSizeCounter() == 2) {
// 150%
if (!(videoSize.width() > point.x)) {
layoutParams.height = (int) (((videoSize.width() * 1.5f)) * videoSize.height() / videoSize.width());
layoutParams.width = (int) (videoSize.width() * 1.5f);
} else {
layoutParams.height = videoSize.height();
layoutParams.width =videoSize.width();
}
} else if (getSizeCounter() == 3) {
// fit to screen
layoutParams.height = ((point.x) * videoSize.height()) / videoSize.width();
layoutParams.width = point.x;
}
playerView.getVideoSurfaceView().setLayoutParams(layoutParams);
sizeCounter++;
}
Проблема в том, что, когда я изменяю размер этого вида поверхности этого видео-представления, я получаю нечто подобное
100%
150%
По размеру экрана
пробовал гравитацию, layout_gravity и т. Д. Этого представления и его родителей, но это не сработало.
я хочу, чтобы видеобыть в центре экрана.