Красным это видео. Черным это размер экрана телефона. Я использую SurfaceView.
Как мне подогнать видео под размер экрана. орентировываясь по ширине Экрана телефона.
Сохраняю пропорции.
В ImageView все просто. Добавил картинку и она сама с сохранением пропорций отображается.
Ответ
Если вы хотите использовать именно 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();
}
}
});
Комментариев нет:
Отправить комментарий