2013-08-29 1 views
12

у меня есть два вопроса:полноэкранного приложения андроид

  1. один, как я могу запустить мое приложение в полноэкранном режиме
  2. как видеоплеер работают видео в полноэкранном режиме.

Я пробовал много и все еще изо всех сил пытался достичь этого, но не смог найти решение.

список решения я нашел, но они не выполняют мои требования

  • это скрывает только панель уведомлений. .

    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    

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

  • также только скрывает панель уведомлений

    android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 
    
  • это низкие профили панель навигации не скрывая его.

    getWindow(). GetDecorView(). SetSystemUiVisibility (View.SYSTEM_UI_FLAG_LOW_PROFILE);

  • не влияет на мою деятельность.

    anyView.setSystemUiVisibility (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

обратите внимание, что:

  • я не говорю о укоренении устройства, поэтому просьба представить те решения, которые могут работать без укоренения устройства.
  • Я не говорю о том, что скрываю только панель уведомлений, но полный экран, скрывая как панель навигации, так и панель уведомлений.
  • Я говорю о желе bean api 4.1 или выше 4.1 версии android
  • и, пожалуйста, дайте ответы с кодом.

после моего исследования и ваши ответы, я получаю это:

enter image description here

, но мое приложение должно выглядеть следующим образом без панели навигации:

enter image description here

я не хотите, чтобы панель навигации системы отображалась в моем приложении.

+0

Разве ваше приложение не работает в полноэкранном режиме, когда нет панели уведомлений ?! – Enthusiasmus

+0

Вы можете посмотреть, как использовать 'setSystemUIVisibility (int)' и различные флаги для использования, например [SYSTEM_UI_FLAG_LOW_PROFILE] (http://developer.android.com/reference/android/view/View.html#SYSTEM_UI_FLAG_LOW_PROFILE). Вы можете использовать разные флаги в сочетании друг с другом, разделив их на '|' – codeMagic

+0

@ Хамад, вы нашли свой ответ? –

ответ

0

Я сделал 2 раскладок один для обычного размера и один на весь экран и в полном scrreen я получаю размер устройства и и назначить его на видео плеер

Display display = getWindowManager().getDefaultDisplay(); 
Point size = new Point(); 
display.getRealSize(size); 
int w=size.x; 
int h=size.y; 
videoPlayer.setFixedSize(w, h); 
+0

не работает в моем проекте. – Hamad

+0

как выглядит ваш код. –

0

Я думаю, что вы не можете скрыть панель системы в андроиде 4.0> (только в таблетках, в телефонах вы должны быть в состоянии)

Что вы можете сделать, чтобы скрыть иконки и отключить некоторые кнопки (все, кроме дома)

Вы можете попробовать это:

 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH) { 
     getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);    

     } 

Также для отключения кнопок:

Это для задней кнопки:

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    return false; 
    } 

Это для меню:

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 

     try 
     { 
      if(!hasFocus) 
      { 
       Object service = getSystemService("statusbar"); 
       Class<?> statusbarManager = Class.forName("android.app.StatusBarManager"); 
       Method collapse = statusbarManager.getMethod("collapse"); 
       collapse .setAccessible(true); 
       collapse .invoke(service); 
      } 
     } 
     catch(Exception ex) 
     { 
     } 

} 
+0

donot хочет низкого профиля .. хочет скрыть его полностью. – Hamad

+1

прочитайте первую строчку -.- – leojg

0

Видео Игроки работают в полноэкранном режиме, установив

myView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

setFlags() перед тем setContentView(View)

Это покажет панель системы на взаимодействия с пользователем, просто как видеоплееры.

Ближайшие вы можете добраться до запуска вашего приложения в полноэкранном режиме является установкой в ​​Lights Out режима, кнопки системы будут выглядеть как точек.

Чтобы использовать свет из режима просто использовать любой вид вашей деятельности и вызвать

anyView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

Для скрытие панели навигации использовать это в вашем onStart() так, что каждый раз, когда вы к этой деятельности будет in полноэкранный режим.

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

Я надеюсь, что это помогает!

+0

Чтобы избежать ярости между двумя действиями полного экрана (со скрытой навигационной панелью), вызовите 'setSystemUiVisibility()' перед 'setContentView()' в 'onCreate()'; – mmathieum

28

Я не уверен, что вам нужно, но следующее скрывает панель уведомлений и клавиши Soft Navigation (как показано на устройствах Google Nexus), поэтому приложение по существу является «полноэкранным».

Edit2

В Android 4.4 (API 19) Google представила новый Immersive режим, который может скрыть статус & Navbar и позволит по-настоящему полноэкранный пользовательский интерфейс.

// This snippet hides the system bars. 
private void hideSystemUI() { 
    // Set the IMMERSIVE flag. 
    // Set the content to appear under the system bars so that the content 
    // doesn't resize when the system bars hide and show. 
    mDecorView.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); 
} 

// This snippet shows the system bars. It does this by removing all the flags 
// except for the ones that make the content appear under the system bars. 
private void showSystemUI() { 
    mDecorView.setSystemUiVisibility(
       View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
      | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
      | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
} 

Ссылка:
https://developer.android.com/training/system-ui/immersive.html

Edit:
Проверено на Android 4.3 (API 18) и Android 4.1 (API 16) с помощью кнопок Soft Nav.

@Override 
protected void onCreate(Bundle b) { 
    super.onCreate(b); 

    setContentView(R.layout.main); 

    int mUIFlag = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
       | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
       | View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
       | View.SYSTEM_UI_FLAG_LOW_PROFILE 
       | View.SYSTEM_UI_FLAG_FULLSCREEN 
       | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; 

    getWindow().getDecorView().setSystemUiVisibility(mUIFlag); 
} 

Для получения более подробной информации читайте на http://developer.android.com/reference/android/view/View.html#setSystemUiVisibility(int)

+1

В чем причина нисходящего потока? – kaderud

+0

Lol не говоря уже о вниз голосов: D Для KitKat или выше использования этой единой строки кода в OnCreate - GetWindow() getDecorView() setSystemUiVisibility (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY).. Fos os version ниже KitKat (API 19) - использовать другие флаги –

+0

это не работает в моем случае, это просто делает его низким профилем @chrkad – Hamad

-2

пойти в манифесте и добавить к вашей деятельности

<activity 
     android:name="yourPackage.yourActivity" 

     android:theme="@android:style/Theme.Black.NoTitleBar"> 
+0

«.Fullscreen» отсутствует после «NoTitleBar» – Honza

1

На новом Android 4.4 вы должны добавить следующую строку:

View.SYSTEM_UI_FLAG_IMMERSIVE; 

Таким образом, новое рабочее решение по крайней мере на nexus4 4.4.2 является

final int mUIFlag = 
     View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
       | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
       | View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
       | View.SYSTEM_UI_FLAG_LOW_PROFILE 
       | View.SYSTEM_UI_FLAG_FULLSCREEN 
       | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
       | View.SYSTEM_UI_FLAG_IMMERSIVE; 

Погружение само по себе не будет работать, хотя оно работает в сочетании с другими флагами. см. документацию для более подробной информации. Затем вы добавляете в деятельности Активизирующаяся этой установки, как показано здесь, прежде чем (я просто добавить к консистенции)

getWindow().getDecorView().setSystemUiVisibility(mUIFlag); 
+0

Я хочу это в jellybeans 4.1, а не kitkat – Hamad

+0

ОК, извините, я понимаю, что это не знаю, чтобы помочь вам здесь, возможно, сочетание других флагов достаточно хорошо? – sivi

+0

проверить это http://stackoverflow.com/questions/9558638/how-to-code-backward-compatible-new-feature-in-android-sdk – sivi

2

-Чтобы скрыть Строка состояния:

Большое решение, которое я нашел для этого вопрос, устанавливая каждую активность theme & windowSoftInputMode следующие значения:

<activity android:name=".MyActivity" 
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
      android:windowSoftInputMode="adjustResize"> <!-- theme : to set the activity to a full screen mode without a status bar(like in some games) --> 
</activity>            <!-- windowSoftInputMode : to resize the activity so that it fits the condition of displaying a softkeyboard --> 

для получения дополнительной информации refer here.

-Чтобы скрыть панель уведомлений:

Есть Два пути:

1- корень вашего устройства, а затем открыть устройство в adb window command, а затем запустить следующее:

adb shell > 
su > 
pm disable com.android.systemui > 

и вернуть его просто сделать то же самое, но сменить disable на enable.

2- добавьте следующую строку в конец build.prop файл вашего устройства:

qemu.hw.mainkeys = 1 

затем, чтобы получить его обратно просто удалить его.

и если вы не знаете, как редактировать build.prop файла:

  • скачать EsExplorer на устройстве и поиска build.prop затем изменить его разрешение на чтение и запись, наконец, добавить линия.
  • скачать специализированное приложение для редактора build.prop, например build.propEditor.
  • или обратитесь к that link.
+0

Это решение требует корневого устройства! и это невозможно для меня! запускать и устанавливать или устанавливать любое другое приложение на клиентское устройство! поэтому это не решает мою проблему! – Hamad

+0

@ Хамад хорошо, спасибо за ответ ур, но я думаю, что вы не найдете решение, как хотите, без маршрутизации, так как даже в KitKat есть что-то, что называется погружением, но при нажатии на main_layout они появляются, а затем остаются около 3 секунд. –

0

Версия для Android: 4.2.2 - Прибор: Таблетка Vega

Приложение для Android для скрытия состояния и системной панели и отображения полного экрана Я выполнил следующие шаги.

AndroidManifest.xml

<application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name"> 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

MainActivity.java

super.onCreate(savedInstanceState); 
getWindow().getDecorView().setSystemUiVisibility(0x10); 
setContentView(R.layout.activity_main); 

Приведенный выше код отлично работает для моего приложения.

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

  • Нет связанных вопросов^_^