Intereting Posts
Как узнать, какая SIM-карта делает исходящий вызов (Dual SIM) Api для рисования диаграммы в android Привет, мировой модуль ядра для android и неизвестного переселения: 27, когда insmod Как я могу настроить вкладки Android, чтобы получить 3D-взгляд? Как запустить скомпилированный двоичный файл в Android? JNI падает при вызове CallVoidMethod Элегантный способ выполнения сложных необработанных запросов с помощью ContentProvider Как оставаться подключенным к службе Android между несколькими действиями? Не удается разрешить конструктор ArrayAdapter Android: CollapsingToolbarLayout и SwipeRefreshLayout застряли Как загрузить файл на Android с помощью Retrofit library? Намерение взять видео в android Прокрутка до / установка позиции настроек пользовательского списка. Как получить возвращаемое значение из javascript в webview android? Oauth 2.0: идентификатор клиента и секрет клиента раскрыты, это проблема безопасности?

Полноэкранный режим в Android?

Как я могу сделать весь экран действия? Я имею в виду без панели уведомлений. Есть идеи?

Solutions Collecting From Web of "Полноэкранный режим в Android?"

Вы можете сделать это программно:

public class ActivityName extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // remove title requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.main); } } 

Или вы можете сделать это через ваш файл AndroidManifest.xml :

 <activity android:name=".ActivityName" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/> 

Редактировать:

Если вы используете AppCompatActivity, вам необходимо задать тему ниже

 <activity android:name=".ActivityName" android:label="@string/app_name" android:theme="@android:style/Theme.AppCompat.Light.NoActionBar"/> 

В KitKat есть технология под названием Immersive Full-Screen Mode . Я думаю, что теперь это предпочтительный способ реализации полноэкранного Activity. Иммерсивный полноэкранный режим

пример

В файле AndroidManifest.xml :

 <activity android:name=".Launch" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > <!-- This line is important --> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

Или в Java- коде:

 protected void onCreate(Bundle savedInstanceState){ requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } 

Если вы не хотите использовать тему @android:style/Theme.NoTitleBar.Fullscreen потому что вы уже используете собственную тему, вы можете использовать android:windowFullscreen .

В AndroidManifest.xml:

 <activity android:name=".ui.activity.MyActivity" android:theme="@style/MyTheme"> </activity> 

В styles.xml:

 <style name="MyTheme" parent="your parent theme"> <item name="android:windowNoTitle">true</item> <item name="android:windowFullscreen">true</item> </style> 

Если вы используете AppCompat и ActionBarActivity, используйте этот

getSupportActionBar().hide();

Будь осторожен с

 requestWindowFeature(Window.FEATURE_NO_TITLE); 

Если вы используете какой-либо метод, чтобы настроить панель действий следующим образом:

 getSupportActionBar().setHomeButtonEnabled(true); 

Это приведет к исключению нулевого указателя.

Попробуйте это с помощью appcompat от style.xml . Он может поддерживать все платформы.

 <!-- Application theme. --> <style name="AppTheme.FullScreen" parent="AppTheme"> <item name="android:windowFullscreen">true</item> </style> <!-- Application theme. --> <style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar" /> 

Использование Android Studio (текущая версия 2.2.2 в данный момент) очень просто добавить полноэкранную активность.

См. Шаги:

  1. Щелкните правой кнопкой мыши на своем основном пакете java> Выберите «Создать»> Выберите «Активность»> Затем нажмите «Полноэкранный режим».

Первый шаг

  1. Настройте действие («Название действия», «Имя макета» и т. Д.) И нажмите «Закончить».

Шаг второй

Готово!

Теперь вы легко активируете полноэкранную активность (см. Класс java и макет действия, чтобы знать, как все работает)!

Спасибо за ответ @Cristian, я получал ошибку

Android.util.AndroidRuntimeException: requestFeature () необходимо вызвать перед добавлением содержимого

Я решил это, используя

 @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_login); ----- ----- } 

Сначала вы должны установить тему приложения с помощью «NoActionBar», как показано ниже.

 <!-- Application theme. --> <style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar" /> 

Затем добавьте эти строки в полноэкранный режим.

 public class MainActiviy extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.main); } } 

Он скроет панель действий / панель инструментов, а также панель состояния в полноэкранном режиме

Я хотел использовать свою собственную тему вместо использования @android: style / Theme.NoTitleBar.Fullscreen. Но он не работал, как упоминалось выше, поэтому я сделал некоторые настройки, чтобы понять это.

В AndroidManifest.xml:

 <activity android:name=".ui.activity.MyActivity" android:theme="@style/MyTheme"> </activity> 

В styles.xml:

 <style name="MyTheme"> <item name="android:windowNoTitle">true</item> <item name="android:windowActionBar">false</item> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="android:windowFullscreen">true</item> </style> 

Примечание: в моем случае я должен был использовать name="windowActionBar" вместо name="android:windowActionBar" прежде чем он работал правильно. Поэтому я просто использовал оба, чтобы убедиться, что в случае, когда мне понадобится порт для новой версии Android позже.

СОВЕТ: Использование getWindow (). SetLayout () может испортить ваш полный экран! Обратите внимание, что в документации по этому методу написано:

Задайте параметры макета ширины и высоты окна … вы можете изменить их на … абсолютное значение, чтобы сделать окно, которое не является полноэкранным.

http://developer.android.com/reference/android/view/Window.html#setLayout%28int,%20int%29

В моих целях я обнаружил, что мне пришлось использовать setLayout с абсолютными параметрами, чтобы правильно изменить полноэкранное окно. Большую часть времени это работало нормально. Он был вызван событием onConfigurationChanged (). Однако была икота. Если пользователь вышел из приложения, изменил ориентацию и снова появился, это привело бы к отключению моего кода, который включал setLayout (). Во время этого временного окна повторного ввода моя строка состояния (которая была скрыта манифестом) была сделана для повторного появления, но в любое другое время setLayout () не вызвало бы этого! Решение состояло в том, чтобы добавить дополнительный вызов setLayout () после того, который был с такими жесткими значениями:

  public static void setSize( final int width, final int height ){ //DO SOME OTHER STUFF... instance_.getWindow().setLayout( width, height ); // Prevent status bar re-appearance Handler delay = new Handler(); delay.postDelayed( new Runnable(){ public void run() { instance_.getWindow().setLayout( WindowManager.LayoutParams.FILL_PARENT, WindowManager.LayoutParams.FILL_PARENT ); }}, FILL_PARENT_ON_RESIZE_DELAY_MILLIS ); } 

Затем окно правильно изменилось, и строка состояния не появлялась повторно независимо от события, которое вызвало это.

Показать полное погружение:

 private void askForFullScreen() { getActivity().getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar | View.SYSTEM_UI_FLAG_IMMERSIVE); } 

Выйти из полного режима погружения:

  private void moveOutOfFullScreen() { getActivity().getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); } 
  protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_splash_screen); getSupportActionBar().hide(); } 

После большого количества времени, без каких-либо успехов, я пришел с моим собственным решением, которое прекратилось с другим разработчиком. Так что, если кто-то нуждается в ней, это так. Моя проблема заключалась в том, что системная панель навигации не скрывалась после вызова. Также в моем случае мне нужен пейзаж, так что на всякий случай прокомментируйте эту строку и все. Прежде всего создать стиль

  <style name="FullscreenTheme" parent="AppTheme"> <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item> <item name="android:windowActionBarOverlay">true</item> <item name="android:windowBackground">@null</item> <item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item> <item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item> </style> 

Это мой файл манифеста

 <activity android:name=".Splash" android:screenOrientation="landscape" android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|screenSize" android:label="@string/app_name" android:theme="@style/SplashTheme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity" android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|screenSize" android:screenOrientation="landscape" android:label="@string/app_name" android:theme="@style/FullscreenTheme"> </activity> Размер <activity android:name=".Splash" android:screenOrientation="landscape" android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|screenSize" android:label="@string/app_name" android:theme="@style/SplashTheme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity" android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|screenSize" android:screenOrientation="landscape" android:label="@string/app_name" android:theme="@style/FullscreenTheme"> </activity> Размер <activity android:name=".Splash" android:screenOrientation="landscape" android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|screenSize" android:label="@string/app_name" android:theme="@style/SplashTheme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity" android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|screenSize" android:screenOrientation="landscape" android:label="@string/app_name" android:theme="@style/FullscreenTheme"> </activity> 

Это моя сальш-деятельность

 public class Splash extends Activity { /** Duration of wait **/ private final int SPLASH_DISPLAY_LENGTH = 2000; /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.splash_creen); /* New Handler to start the Menu-Activity * and close this Splash-Screen after some seconds.*/ new Handler().postDelayed(new Runnable(){ @Override public void run() { /* Create an Intent that will start the Menu-Activity. */ Intent mainIntent = new Intent(Splash.this,MainActivity.class); Splash.this.startActivity(mainIntent); Splash.this.finish(); } }, SPLASH_DISPLAY_LENGTH); } 

}

И это моя главная деятельность на весь экран. OnSystemUiVisibilityChange thi метод перестает быть важным, в противном случае основная панель навигации Android после вызова останется и больше не исчезнет. Действительно раздражающая проблема, но эта функция решает эту проблему.

Открытый класс MainActivity расширяет AppCompatActivity {

 private View mContentView; @Override public void onResume(){ super.onResume(); mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fullscreen2); ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.hide(); } mContentView = findViewById(R.id.fullscreen_content_text); mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); View decorView = getWindow().getDecorView(); decorView.setOnSystemUiVisibilityChangeListener (new View.OnSystemUiVisibilityChangeListener() { @Override public void onSystemUiVisibilityChange(int visibility) { System.out.println("print"); if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) { mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); } else { mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); } } }); } 

}

Это мой макет экрана:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:id="@+id/splashscreen" android:layout_width="wrap_content" android:layout_height="fill_parent" android:background="@android:color/white" android:src="@drawable/splash" android:layout_gravity="center"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World, splash"/> </LinearLayout> This is my fullscreen layout <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#0099cc" > <TextView android:id="@+id/fullscreen_content_text" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:keepScreenOn="true" android:text="@string/dummy_content2" android:textColor="#33b5e5" android:textSize="50sp" android:textStyle="bold" /> </FrameLayout> 

Я надеюсь, что это поможет вам

Это сработало для меня.

 if (Build.VERSION.SDK_INT < 16) { getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } else { View decorView = getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions); } 
 getWindow().addFlags(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);