#java #android #video #glsurfaceview
Красным это видео. Черным это размер экрана телефона. Я использую SurfaceView. Как мне подогнать видео под размер экрана. орентировываясь по ширине Экрана телефона. Сохраняю пропорции. В ImageView все просто. Добавил картинку и она сама с сохранением пропорций отображается.
Ответы
Ответ 1
Если вы хотите использовать именно SurfaceView, то стоит сделать так: Например у нас есть такая разметка:Подключаем необходимые нам элементы: surfaceViewFrame = (SurfaceView) findViewById(R.id.surfaceViewFrame); player = new MediaPlayer(); player.setDisplay(holder); А теперь немного расчетов добавим в ваш MediaPlayer в onPreparedListener и пересчитаем высоту и ширину видео фрагмента в соответствии с текущими размерами экрана, избежав растягивания. player.setOnPreparedListener(new OnPreparedListener() { @Override public void onPrepared (MediaPlayer mp){ int videoWidth = player.getVideoWidth(); int videoHeight = player.getVideoHeight(); float videoProportion = (float) videoWidth / (float) videoHeight; int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); int screenHeight = getWindowManager().getDefaultDisplay().getHeight(); float screenProportion = (float) screenWidth / (float) screenHeight; android.view.ViewGroup.LayoutParams lp = surfaceViewFrame.getLayoutParams(); if (videoProportion > screenProportion) { lp.width = screenWidth; lp.height = (int) ((float) screenWidth / videoProportion); } else { lp.width = (int) (videoProportion * (float) screenHeight); lp.height = screenHeight; } surfaceViewFrame.setLayoutParams(lp); if (!player.isPlaying()) { player.start(); } } }); Ответ 2
Для видео лучше брать специальную вюху. Посмотрите сюда VideoView
Комментариев нет:
Отправить комментарий