3

У меня есть видео, отображаемое с использованием SurfaceView во фрагменте. Если я изменяю ориентацию экрана во время воспроизведения видео, он не изменяется. Например, если видео воспроизводится в альбомном размере (полный экран), при повороте экрана он не переходит в портретный размер. Он остается, если размер ландшафта. Если я начинаю видео в пейзаж, это не изменится portrait.I я использую следующие в моем манифесте:Видео не изменяет размер при изменении ориентации

<activity 
     android:name=".BassActivity" 
     android:configChanges="keyboardHidden|orientation|screenSize" 
     > 

у меня есть это в моем «OnCreate»

@Override 
public void onCreate(Bundle savedInstanceState) { 
    if (VERBOSE) Log.v(TAG, "+++ onCreate +++"); 
    super.onCreate(savedInstanceState);   
    getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR); 
    setRetainInstance(true); 

Я хотел бы для видео, чтобы изменить размер, например, от портрета к пейзажу, когда я поворачиваю экран, пока он играет.

Я также добавил сообщение тоста к onSurfaceChanged, чтобы увидеть, когда оно запущено, но это не срабатывает, когда я поворачиваю экран. Как изменить размер видео после его начала?

+0

набор "андроид: configChanges =" keyboardHidden | ориентация | Размер экрана "" для игрока деятельности. –

ответ

2

использование этого конфиг меняется

если андроид: configchanges = "ориентация"

public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 

     // Checks the orientation of the screen 
     if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
      Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); 
      // for example the width of a layout 
      int width = 300; 
      int height = LayoutParams.WRAP_CONTENT; 
      WebView childLayout = (WebView) findViewById(R.id.webview); 
      childLayout.setLayoutParams(new LayoutParams(width, height)); 
     } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
      Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); 
     } 
    } 
+0

Спасибо! Это сработало! У меня есть обзор поверхности, поэтому я просто заменил WebView для SurfaceView. – sowens

Смежные вопросы