Страница 1 из 1

Сохранить пропорции видео

Добавлено: 25 июл 2013, 23:35
=bor=
Если задаю у SurfaceView ширину и высоту wrap_content, то пропорции сохраняются, но если дисплей больше размеров видео, то используется часть экрана.
Если задаю ширину и/или высоту match_parent, то изображение искажается.
Как растянуть видео на весь экран, скажем, по ширине, а высоту задать так, чтоб пропорции сохранялись правильными?
Где-то видел код, то ли на Стэке, то ли здесь, но не могу найти...

Re: Сохранить пропорции видео

Добавлено: 26 июл 2013, 12:59
=bor=
Снова забросали вариантами решения. :lol:
Прям масонская ложа, тайные знания.
Не парьтесь - решил, и делюсь, наверняка кому-то пригодится:

Код: Выделить всё

@Override
public void surfaceCreated(SurfaceHolder holder) {
	//Получаю размеры видео
	int videoWidth = mMediaPlayer.getVideoWidth();
	int videoHeight = mMediaPlayer.getVideoHeight();
	//Получаю ширину экрана
	int screenWidth = getWindowManager().getDefaultDisplay().getWidth();
	//Получаю параметры SurfaceView
	android.view.ViewGroup.LayoutParams lp = mPreview.getLayoutParams();
	//Устанавливаю ширину SurfaceView равной ширине экрана
	lp.width = screenWidth;
	//Устанавливаю высоту SurfaceView в соответствующей пропорции к видео
	lp.height = (int) (((float)videoHeight / (float)videoWidth) * (float)screenWidth);
	//Фиксирую параметры layout
	mPreview.setLayoutParams(lp);
mp.start();

Re: Сохранить пропорции видео

Добавлено: 26 июл 2013, 13:52
Mikhail_dev
Молодец. Используй для кода лучше теги [syntax=java]

Re: Сохранить пропорции видео

Добавлено: 26 июл 2013, 14:42
=bor=
no-- писал(а):Молодец. Используй для кода лучше теги [syntax=java]
Не понял про эти теги, поясни, пожалуйста.

Re: Сохранить пропорции видео

Добавлено: 26 июл 2013, 16:35
Mikhail_dev
Я про использование тегов к коду
[syntax=java]
тут код
[/syntax]