2013-09-27 2 views
16

Я создаю пользовательское изображение. Я иду через источник андроида, я хочу избавиться от нижней панели кнопок функциональных клавиш в android, может ли кто-нибудь направить меня в исходный файл для изменения? enter image description hereКак удалить панель кнопок на нижнем экране

+1

Youtube делает это –

+2

@DjHacktoReborn Как вы пришли к выводу, что это невозможно? Несколько приложений, по крайней мере, скрывают эту панель в разное время. – jwir3

ответ

20

Чтобы включить/отключить их, насколько я знаю, вы просто должны отредактировать build.prop:

qemu.hw.mainkeys=0 (show on screen buttons) 

или

qemu.hw.mainkeys=1 (disable on screen buttons) 

Если строка не существует в вашем build.prop, добавьте его внизу.

+0

Этот build.prop всегда существует на всех Android-устройствах, которые используют программные кнопки или могут отличаться от производителя к производителю? – JohnyTex

6

Вы не можете скрыть его навсегда, однако:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 

этот код скрывает мягкие клавиши до тех пор, пока пользователь не взаимодействует с приложением. Это преднамеренно спроектировано таким образом, просто представьте себе, что вы не предоставляете никакого значения для выхода из текущего экрана и скрытия этих ключей, пользователь будет «пойман в ловушку» в тупике в один конец.

Вы можете найти более here.

+0

Это временное решение, но это очень полезное решение для нормальных условий. – Shri

+0

Welp, я не заметил, что вы создаете образ, и подумал, что вам нужно решение для приложений. Так что, очевидно, это не ваш конкретный случай использования. :) – hundeva

+0

Спасибо, это помогло мне сделать скриншоты. Чтобы скрыть нижнюю панель даже после взаимодействия с приложением, я вызываю этот метод в цикле, который запускается каждую секунду (опять же, только временно, когда я делаю скриншоты). – VinceFior

-1

Я думаю, что это возможно

Чтобы скрыть экранную клавишу Попробуйте getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);, но он не работает на планшете 4+.

3

С появлением нового SureLock для Samsung нижняя панель может быть отключена или скрыта без укоренения устройства. Все, что вам нужно сделать, это установить SureLock Lockdown для Samsung и последующих процедур, указанных в следующем месте,

http://www.42gears.com/blog/2013/07/disablehide-android-bottom-bar-without-rooting-samsung-galaxy-tablets/

Проверьте следующий link.It может помочь вам понять это.

http://www.42gears.com/blog/2012/02/disable-bottom-bar-in-android-honeycomb-tablets-with-surelock/

1

Если вы хотите, чтобы сделать панель навигации (кнопка бар) меньше отвлекают, попробуйте youractivity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE)

4
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 
       | View.SYSTEM_UI_FLAG_FULLSCREEN 
       | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 

использовать этот код в OnCreate. Но это требует апи лв за 19

4

В дополнение к ответу Aykut Бурак şafak в выше, вы можете поместить свой код в onWindowFocusChanged случае, чтобы убедиться, что всякий раз, когда Activity получает фокус (например, после разблокировки) он сохраняет весь экран без мягких клавиш состояния ,

@Override 
public void onWindowFocusChanged(boolean hasFocus){ 
    super.onWindowFocusChanged(hasFocus); 
    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 
        | View.SYSTEM_UI_FLAG_FULLSCREEN 
        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 
} 
0

Да, вы можете с помощью этого в вашей деятельности:

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
     super.onWindowFocusChanged(hasFocus); 
    if (hasFocus) { 
     decorView.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 
       | View.SYSTEM_UI_FLAG_FULLSCREEN 
       | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);} 
} 
5

Самый простой способ сделать снимок экрана без нижней панели навигации является использование эмулятора (АВД) и отредактировать его конфигурационный файл ,

Перейти к .android/AVD/виртуальной device.avd

Затем отредактируйте конфиг.ини:

hw.mainKeys=yes 
hw.keyboard=yes 

Оба должны быть установлены на «да»

Для того, чтобы иметь возможность видеть планку снова установите их обратно на «нет».

+0

Это прекрасно работает для съемки промо-роликов для новых эмуляторов Android Studio в сочетании со демонстрационным режимом состояния. Новые эмуляторы не внедрены, поэтому вы не можете легко модифицировать build.prop, но это очень приятное решение. – Gira

+0

Не работает для меня, меняя mainKeys на yes, чтобы эмулятор зависал во время загрузки. Переход обратно на нет заставляет его загружаться снова. Nexus 5X API 26 – thanhbinh84

+2

@ thanhbinh84 получил ту же проблему, но хорошо работает с Pixel API 23 –

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