Intereting Posts
JSON jsonObject.optString () возвращает строку "null" Как скомпилировать и запустить программу C / C ++ в системе Android FragmentActivity onSaveInstanceState не получает вызов Main не может быть разрешен или не является полем Изменить цвет андроида: activatedBackgroundIndicator Позиционирование пунктов меню слева от ActionBar в сотах Мне нужны как Robolectric, так и Mockito в моем тесте, каждый из них предлагает свой собственный TestRunner Не удалось выполнить синхронизацию проекта Studio Studio Gradle Как отключить масштабирование / масштабирование веб-страницы на Android? Android NumberPicker не сохраняет изменения EditText Существует ли многоплатформенная платформа для разработки приложений для iPhone / Android? Сохраняйте плитки видимыми при загрузке TileOverlay Map API v2 Android Ошибка: подозрительное пространство имен и префиксная комбинация при попытке создания подписанного APK Настраивать только устройства с высоким разрешением (пикселей) в Android Market Android – Можно ли использовать навигационный ящик с правой стороны?

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

Это мой код:

params = new WindowManager.LayoutParams( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, PixelFormat.TRANSLUCENT); wm = (WindowManager) getApplicationContext() .getSystemService(Context.WINDOW_SERVICE); inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); mTopView = (ViewGroup) inflater.inflate( R.layout.activity_invisible, null); params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | WindowManager.LayoutParams.FLAG_DIM_BEHIND | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |WindowManager.LayoutParams.FLAG_FULLSCREEN; if(keep==true){ int value = brightnessIntent.getExtras().getInt("value"); float v=value/255.0f; params.dimAmount=0; params.alpha=v; rl = (RelativeLayout) mTopView.findViewById(R.id.window); getWindow().setAttributes(params); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); wm.addView(mTopView, params); } 

В представлении по-прежнему отображается строка состояния, mTopView – это оверлейное окно. Как получить окно оверлея для охвата всего экрана? Я не хочу «скрывать» строку состояния, я хочу, чтобы моя деятельность накладывалась на нее.

[EDIT] подчеркнул текст, который у меня уже есть в моем onCreate() :

 requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

И мой манифест определяет стиль, который включает полноэкранный режим.

СКРИНШОТЫ

Введите описание изображения здесь

Вот как это делается в настоящее время, я хочу, чтобы наложение также распространялось на строку состояния.

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

Все, что мне нужно было сделать, это

params.flags=WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN| and the rest

Это расширяет представление оверлей поверх строки состояния.

Этот код из «Android Application 4 Development». Вы должны обрабатывать различные версии Android

  // Hiding the Action Bar for different android versions if (Build.VERSION.SDK_INT < 16) { // Hide the Action Bar on Android 4.0 and Lower getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); }else { // Hide the Action Bar on Android 4.1 and Higher View decorView = getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions); android.app.ActionBar actionBar = getActionBar(); actionBar.hide(); } 

Вы можете скрыть строку состояния двумя способами:

1) Определите onCreate() строку в своей деятельности по onCreate() .

  requestWindowFeature(Window.FEATURE_NO_TITLE); 

2) Определите тему на уровне приложения, чтобы не показывать строку состояния через приложение, как показано ниже:

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

Попробуй это..

  requestWindowFeature(Window.FEATURE_NO_TITLE); 

Он не скроет вашу строку состояния, ваше приложение будет закрыто только в полноэкранном режиме.

  public class example extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.example); } } 

И чтобы скрыть строку состояния

вы можете использовать

 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 

Попробуйте этот путь

 final WindowManager.LayoutParams params = new WindowManager.LayoutParams( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, PixelFormat.TRANSLUCENT); WindowManager wm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE); ViewGroup mTopView = (ViewGroup) App.inflater.inflate(R.layout.main, null); getWindow().setAttributes(params); wm.addView(mTopView, params); 

Чтобы создать на весь экран полноэкранный режим наложения в Android:

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); getWindow().setBackgroundDrawableResource(android.R.color.transparent); getWindow().setFormat(PixelFormat.TRANSLUCENT); setContentView(R.layout.main); } 

Прозрачный параметр должен быть включен снаружи в манифесте xml, иначе он также не работал.

  <item name="android:windowIsTranslucent">true</item>