Войти
AndroidФорумОбщее

Создание полупрозрачного полноэкранного приложения, как?

Advanced: Тема повышенной сложности или важная.

#0
3:56, 26 сен. 2012

Перекопал все на свете.
Создать полупрозрачное окно получается, но вот статусбар (где батарейка и пр.) все равно остается на экране.
Окно, которое я делаю не растягивается на весь экран, ну никак.
Пробовал так (в активити):

requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
Window window = getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
setContentView(R.layout.activity_full_screen);

Статусбар на месте.
Пробовал и стиль делать (и родную андроидовскую тему использовал):

<style name="Theme.Translucent" parent="@android:style/Theme.Dialog">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:backgroundDimEnabled">false</item>
        <item name="android:windowFullscreen">true</item>
</style>

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


#1
13:36, 26 сен. 2012

3DRaven
Не очень понял, тебе надо избавиться от статусбара, или сделать полупрозрачное окно поверх него (чтоб он "просвечивал")?

#2
17:10, 26 сен. 2012

Сделать поверх, что бы просвечивал.

#3
17:58, 26 сен. 2012

Тут 2 варианта, либо твоё окно находится ПОД статусбаром, либо оно урезанного размера и находится рядом со статусбаром (это можно выяснить, запросив размеры окна). Если дело в размерах, то сменить размеры. Как это делается из явы не знаю, в NDK есть вот такая функция:

int32_t ANativeWindow_setBuffersGeometry(ANativeWindow* window, int32_t width, int32_t height, int32_t format);

#4
18:21, 26 сен. 2012

Попробую. Окно именно меньше...я с координат 0,0 линию нарисовал просто. Она под статусббаром начинается.
Спасибо.

#5
18:22, 26 сен. 2012

3DRaven
так если под статусбаром, значит окно размером с весь экран, и надо искать способы поднять его над статусбаром.

Прошло более 11 месяцев
#6
11:55, 28 авг. 2013

Вот так вот:

//Убрать title bar

this.requestWindowFeature(Window.FEATURE_NO_TITLE);


//Развернуть на весь экран

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

Чтобы не прописывать это в каждом Activity, можно дополнить манифест до такого:

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

AndroidФорумОбщее

Тема в архиве.