Если задаю у SurfaceView ширину и высоту wrap_content, то пропорции сохраняются, но если дисплей больше размеров видео, то используется часть экрана.
Если задаю ширину и/или высоту match_parent, то изображение искажается.
Как растянуть видео на весь экран, скажем, по ширине, а высоту задать так, чтоб пропорции сохранялись правильными?
Где-то видел код, то ли на Стэке, то ли здесь, но не могу найти...
Сохранить пропорции видео
Re: Сохранить пропорции видео
Снова забросали вариантами решения.
Прям масонская ложа, тайные знания.
Не парьтесь - решил, и делюсь, наверняка кому-то пригодится:
Прям масонская ложа, тайные знания.
Не парьтесь - решил, и делюсь, наверняка кому-то пригодится:
Код: Выделить всё
@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();
Последний раз редактировалось =bor= 26 июл 2013, 14:40, всего редактировалось 1 раз.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Сохранить пропорции видео
Молодец. Используй для кода лучше теги [syntax=java]
Re: Сохранить пропорции видео
Не понял про эти теги, поясни, пожалуйста.no-- писал(а):Молодец. Используй для кода лучше теги [syntax=java]
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Сохранить пропорции видео
Я про использование тегов к коду
[syntax=java]
тут код
[/syntax]
[syntax=java]
тут код
[/syntax]