Я пытаюсь воспроизвести в своем приложении то, что делает приложение Youtube при воспроизведении видео.
Портретный режим: показывает видео, используя только 40% экрана, а остальную часть с информацией о видео.
Ландшафтный режим: показывает видео и окно в полноэкранном режиме.
Я видел много тем на переполнении стека и других форумах по этой теме, но ни одна из них, похоже, не работает со мной. В настоящее время у меня есть активность видеоплеера с android:configChanges="keyboardHidden|orientation|screenSize", и я переопределил событие onConfigurationChanged со следующим кодом:
@Override
public void onConfigurationChanged(Configuration config)
{
super.onConfigurationChanged(config);
if (config.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
// requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
else
{
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
}
}
Это не переводит приложение в полноэкранный режим, и если я раскомментирую функцию requestwindowfeature, произойдет сбой, потому что «requestFeature() должен быть вызван перед добавлением содержимого». Позже я попытался удалить событие onConfigurationChanged и событие onCreate, которое я пробовал:
@Override
public void onCreate(Bundle savedInstanceState)
{
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video);
Но происходит сбой с NullPointerException в com.android.internal.policy.impl.PhoneWindow$PanelFeatureState.onRestoreInstanceState(PhoneWindow.java:3527), если я запускаю действие в портретной ориентации, а затем переворачиваю в альбомную. Какие-либо предложения?