Satellite Опубликовано 21 декабря, 2014 Поделиться Опубликовано 21 декабря, 2014 Каким образом можно поменять цвет статус бара в Android? (Delphi XE7)Есть мануал для Java, но пользы из этого не вынес. Цитата Ссылка на комментарий
0 Tarik02 Опубликовано 22 декабря, 2014 Поделиться Опубликовано 22 декабря, 2014 Нужен KitKat или выше! Цитата Ссылка на комментарий
0 Satellite Опубликовано 23 декабря, 2014 Автор Поделиться Опубликовано 23 декабря, 2014 Я понимаю что нужен Kitkat, но меня это не остановит. Как раз таки хочу чтобы было от Kitkat и выше. Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 1 февраля, 2016 Модераторы Поделиться Опубликовано 1 февраля, 2016 (изменено) я пробовал решить это, но тут Делфи ругается если в исходники начинаешь что-то дописывать... по сути, если я правильно понимаю, нужно всего-то добавить в интерфейсы пару строк и тогда мы сможем менять цвет. unit Androidapi.JNI.GraphicsContentViewText; JWindowManager_LayoutParamsClass = interface(JViewGroup_LayoutParamsClass) ['{677013A8-C0C6-4ED2-83EA-188BF4D1331A}'] .... {class} function _GetFLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS: Integer; cdecl; {class} property FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS: Integer read _GetFLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS ; .... [JavaSignature('android/view/Window')] JWindow = interface(JObject) ['{A9AC44DA-219C-41C4-AD29-88B01254819E}'] .... procedure setStatusBarColor(color: Integer); cdecl; .... после объявления этих методов нужно примерно такое вызвать procedure SystemBarSetColor; var Window: JWindow; begin Window := MainActivity.getWindow; Window.clearFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_TRANSLUCENT_STATUS); Window.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); Window.setStatusBarColor(цвет указываем); end; на java это выглядит так // Window window = activity.getWindow(); // window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); // window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); // window.setStatusBarColor(activity.getResources().getColor(R.color.example_color)); ругается на разность скомпилированных файлов... Изменено 1 февраля, 2016 пользователем ZuBy Цитата Ссылка на комментарий
0 zairkz Опубликовано 1 февраля, 2016 Поделиться Опубликовано 1 февраля, 2016 Может Ярослав подключится на досуге, всем надо бы такую штуку) Равиль Зарипов (ZuBy) 1 Цитата Ссылка на комментарий
0 haword Опубликовано 1 февраля, 2016 Поделиться Опубликовано 1 февраля, 2016 (изменено) ну правильно, так ты в свой проект подкинь файлов на которые ругается, там будет их около 5-10. интересно было бы прозрачным сделать заголовок и туда растягивать форму. Изменено 1 февраля, 2016 пользователем haword Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 1 февраля, 2016 Модераторы Поделиться Опубликовано 1 февраля, 2016 ну правильно, так ты в свой проект подкинь файлов на которые ругается, там будет их около 5-10. интересно было бы прозрачным сделать заголовок и туда растягивать форму. не угадал, там нужно все файлы перекомпилировать из папки rtl и половину source... не охото этим заниматься Цитата Ссылка на комментарий
0 haword Опубликовано 1 февраля, 2016 Поделиться Опубликовано 1 февраля, 2016 я так понял ты даже не проверял нужны всего лишь Androidapi.Helpers.pas Androidapi.JNI.AdMob.pas Androidapi.JNI.App.pas Androidapi.JNI.Embarcadero.pas Androidapi.JNI.GraphicsContentViewText.pas Androidapi.JNI.Location.pas Androidapi.JNI.PlayServices.pas Androidapi.JNI.Support.pas Androidapi.JNI.Webkit.pas FMX.FontGlyphs.Android.pas FMX.Graphics.Android.pas FMX.Helpers.Android.pas FMX.Maps.Android.pas FMX.Pickers.Android.pas FMX.Platform.Android.pas FMX.VirtualKeyboard.Android.pas FMX.WebBrowser.Android.pas и все компилируется, только цвет не меняет на указанный. зависала программа если делать при создании формы. сделал в dpr uses System.StartUpCopy, FMX.Forms, Androidapi.Helpers, System.UITypes, Androidapi.JNI.GraphicsContentViewText, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} var Window: JWindow; begin Application.Initialize; Window:= SharedActivity.getWindow; Window.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); Window.clearFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_TRANSLUCENT_STATUS); Window.setStatusBarColor(TAlphaColors.Cyan); Application.CreateForm(TForm1, Form1); Application.Run; end. цвет шапки белый и хоть за заменяйся цвет. Цитата Ссылка на комментарий
0 Кривяков Виталий Опубликовано 1 февраля, 2016 Поделиться Опубликовано 1 февраля, 2016 Да, тоже столкнулся с тем, что цвет становиться белым и не меняется. Вот версия без необходимости менять исходники. SystemBar.zip Andrey Efimov, Kitty, Равиль Зарипов (ZuBy) и 1 другой 4 Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 1 февраля, 2016 Модераторы Поделиться Опубликовано 1 февраля, 2016 Не было времени чтобы проверить какие модули нужно перекомпилировать, возможно цвет делфовый не равен андроидным. Покопайте в эту сторону Цитата Ссылка на комментарий
0 haword Опубликовано 1 февраля, 2016 Поделиться Опубликовано 1 февраля, 2016 да не там какой цвет не ставь все время бар белый, такое ощущение что не зависит от этих установок вообще. Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 1 февраля, 2016 Модераторы Поделиться Опубликовано 1 февраля, 2016 На андроид девелопер есть константы цветов, они отрицательное значение имеют Цитата Ссылка на комментарий
0 haword Опубликовано 1 февраля, 2016 Поделиться Опубликовано 1 февраля, 2016 я даже сделал через Window.setStatusBarColor(TJColor.JavaClass.parseColor(StringToJString('red'))); все равно белый. видно это работает для java и не работает для ndk или работает но как то по другому. может что то со стилями надо делать или в манифесте. Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 2 февраля, 2016 Модераторы Поделиться Опубликовано 2 февраля, 2016 (изменено) Возможно это работает также как и для IOS... У меня получилось Код не изменился, изменения были в форме... Нужно задать цвет Form1.Fill.Color := TAlphaColorRec.Red; Посередине я поставил Rectangle, чтобы цвет контента не был равен цвету форме. и снизу стоит Rectangle с черным цветом, т.к. у меня наэкранные кнопки. если убрать нижняя панель тоже покрасится. И теперь вопрос, кто знает как определить высоту наэкранных кнопок и их существование? P.S. Кривяков Виталий спасибо за модуль Изменено 2 февраля, 2016 пользователем ZuBy zairkz и Kitty 2 Цитата Ссылка на комментарий
0 haword Опубликовано 2 февраля, 2016 Поделиться Опубликовано 2 февраля, 2016 то есть форма должна быть того цвета чем закрашивается заголовок? Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 2 февраля, 2016 Модераторы Поделиться Опубликовано 2 февраля, 2016 то есть форма должна быть того цвета чем закрашивается заголовок? да, код делает только полупрозрачность... точней нам доступно только это. форма становится фулл скрин и мы видим наложение полупрозрачности и фона нашей формы Цитата Ссылка на комментарий
0 haword Опубликовано 2 февраля, 2016 Поделиться Опубликовано 2 февраля, 2016 да ну не, так не интересно, нужно что бы цвет можно было задать без полупрозрачности, что бы он сливался с формой без границ. и я так понимаю ошибка в вызове самой процедуры установки цвета раз цвет не устанавливается. Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 2 февраля, 2016 Модераторы Поделиться Опубликовано 2 февраля, 2016 посмотрите внимательно как сделаны родные приложения google в материале, убедитесь что все так как я предложил. если нет возможности, могу показать у меня Android 6.0 Marshmallow Цитата Ссылка на комментарий
0 haword Опубликовано 2 февраля, 2016 Поделиться Опубликовано 2 февраля, 2016 в маркете я перехода не замечал цветов. да и в инете народ ничего ен пишет про это когда делает это на java. Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 2 февраля, 2016 Модераторы Поделиться Опубликовано 2 февраля, 2016 Вам достаточно одного скрина или еще скинуть? Цитата Ссылка на комментарий
0 haword Опубликовано 2 февраля, 2016 Поделиться Опубликовано 2 февраля, 2016 Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 2 февраля, 2016 Модераторы Поделиться Опубликовано 2 февраля, 2016 действительно, как-то не замечал... ну значит NDK не позволяет нам вызвать этот метод Цитата Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 5 февраля, 2016 Администраторы Поделиться Опубликовано 5 февраля, 2016 [Android] Как изменить цвет системного статус бара и разместить контролы под ним? Цитата Ссылка на комментарий
Вопрос
Satellite
Каким образом можно поменять цвет статус бара в Android? (Delphi XE7)
Есть мануал для Java, но пользы из этого не вынес.
Ссылка на комментарий
21 ответ на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.