В теме 72 сообщения

Шаблон для проектов с покраской статус бара для мобильных платформ

Screenshot_20160401-143243.png    Screenshot_20160401-143253.png

UPDATE: StatusBarColor.7z

UPDATE2: StatusBarColor_update.zip

 

Изменено пользователем ZuBy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ой красавчик, как раз вчера загонялся с этим.
Спасибо, попробую)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

единственно не проверял на больших планшетах, если у кого есть планшеты на андроиде с 10 диагональю, отпишитесь как она себя ведёт.

там просто ориентация по дефолту ландшафтная, возможно будет баг. надо потестить

Изменено пользователем ZuBy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

заметил особенность. открыл прилагу - не меняет. 
заблокировал телефон, разблокировал. Цвет стал меняться 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, ivadimos сказал:

Естественно) 

я тестировал на своём девайсе, на samsung j7/s5 все прекрасно работает. незнаю в чем может быть проблема

 

UPDATE:

procedure TFormMain.FormShow(Sender: TObject);
begin
  TmyUI.HeaderColor1;
  StatusBarGetBounds(myUI.StatusBar, myUI.NavBar); // получаем отступы

  StatusBarSetColor(Fill.Color);
  { на андроиде это работает так:
    //  форма становится на полные размеры (типа FullScreen режим)
    //  статус бар становится полупрозрачным, поэтому мы видим часть нашей формы
    //  и если эту часть формы покрасить, то достигается нужный эффект
  }
  { на айос это работает так:
    // статус бар принимает цвет формы, но если в run-time менять цвет, то он не меняется сразу
    // поэтому нужно вызвать снова этот метод, для моментальной смены цвета
  }
  FormActivate(nil); // добавить нужно
end;

 

Изменено пользователем ZuBy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, ivadimos сказал:

проблема осталась(

попробуй переместить весь код из FormShow в FormActivate

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

всё так же. спасает только блокировка и разблокировка

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

скорей всего нужно переместить присвоение цвета форме, до этих процедур

StatusBarGetBounds(myUI.StatusBar, myUI.NavBar); // получаем отступы
StatusBarSetColor(Fill.Color);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Статус бар из Делфи получилось сделать только полупрозрачным, а нижний бар будет прозрачный, и будет видно форму если убрать margins.bottom с Content'a

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Т.е. нужен только полупрозрачный статусбар, а нижний бар как обычно - черный. Так можно сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конечно, самое простое кинуть в Content TRectangle с Align = MostBottom, покрасить его в черный цвет.

И конечно Content.Margins.Bottom := 0;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Mohamed BEN AMMAR
      hello 
      i'm using delphi fmx for building android App
      i have this code for Activating The WI-FI icon from android device:
      This could be found here .
      =========== code ==================
      uses
        Androidapi.Helpers,
        Androidapi.JNI.JavaTypes,
        Androidapi.JNI.GraphicsContentViewText,
        Androidapi.JNIBridge,
        Androidapi.JNI.WifiManager;
       
      // Uses Permissions> Change wifi state
      procedure SetWifiEnabled (AEnable: Boolean);
      var
        Obj: JObject;
        WifiManager: JWifiManager;
      begin
        Obj: = SharedActivityContext.getSystemService (TJContext.JavaClass.WIFI_SERVICE);
        if Obj = nil then
          Exit;
       
        WifiManager: = TJWifiManager.Wrap ((Obj as ILocalObject) .GetObjectID);
        WifiManager.setWifiEnabled (AEnable);
      end; 
      ============ end code =============
       
       My question is About Activating Android location:
        Is it possible to activate the service location icon from android device
       programatically without using the Location or TLocationSensor component ....?
      however I know exactly that google has been Deactivate this API since android "4" just for security reasons .....
      but i have seen many apps in playstore can activate the service without using 
      the putextra intent (ask the user for activate the location manually ....) maybe with showing just the
      Allow Permission system dialog timer ....( Asking the user for Allowing this App to Activate the service location ......) 
      I have an android device with lolipopup version and i try to execute the location EMBARCADERO sample but 
      this one can not activate the service location ICON even  my device show me the Allow permission dialog where i choose yes allow
      with never ASK....
      Finally ,  I like the WI-FI code above .....
      and i'm wondering if someone here can do this task for me (i need a unit as the WI-FI code above which can offer me
      the option to activate the Service Location ICON )
      I'm ready to paid for that task .....
       
      Sincerelly: Brave.
    • От void
      Добрый день.
      (Delphi 10.3)
      (XCode 10.1)

      Подключил статический framework на версии SDK 11.2 (macMini)
      как описано в:
      ВСЕ ЗАРАБОТАЛО!
       
       

      После обновления:
      1) macMini к
              XCode 10.1
              SDK 12.1
              PAServer 20.0
      2) windows
              PAServer 20.0
      3) PAServer - конектится
      4) прописал дополнительные SDK  (Delphi -> SDK Manager -> Properties)
      5) Получил SDK 12 на windows (Delphi -> Update Local File Cache)
      6) Пути в Linking изменил для SDK12

      При сборке выдает ОШИБКУ:
      [DCC Error] E2597 Undefined symbols for architecture arm64 (для 32 - armv7):...

      [DCC Fatal Error] F2588 Linker error code: 1 ($00000001)

      Кто нибудь сталкивался с такой ошибкой после обновления?
       
    • От GMX
      Android 6 MIUI
       ни стандартные примеры не работают, ни попытки что-то свое создать... 
      LastDiscoveredDevices - всегда 0, хотя из настроек устройства находятся. 
      unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Bluetooth, System.Bluetooth.Components, FMX.Controls.Presentation, FMX.StdCtrls; type TForm1 = class(TForm) Button1: TButton; Bluetooth1: TBluetooth; Label1: TLabel; AniIndicator1: TAniIndicator; procedure Button1Click(Sender: TObject); procedure Bluetooth1DiscoverableEnd(const Sender: TObject); procedure Bluetooth1DiscoveryEnd(const Sender: TObject; const ADeviceList: TBluetoothDeviceList); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.Bluetooth1DiscoverableEnd(const Sender: TObject); begin Label1.Text := IntToStr(Bluetooth1.LastDiscoveredDevices.Count); end; procedure TForm1.Bluetooth1DiscoveryEnd(const Sender: TObject; const ADeviceList: TBluetoothDeviceList); begin Label1.Text := IntToStr(ADeviceList.Count); AniIndicator1.Enabled :=False; end; procedure TForm1.Button1Click(Sender: TObject); begin Bluetooth1.DiscoverDevices(10000); AniIndicator1.Enabled :=True; end; procedure TForm1.FormCreate(Sender: TObject); begin while not Bluetooth1.Enabled do Bluetooth1.Enabled := True; end; end. В разрешениях bluetooth, bluetooth admin, coarse location, fine location включены... 
    • От Barbanel
      Всем привет!
      Поясните мне плиз, такую вещь как TTouchAnimation, на примере Android.
      Как я это понимаю:
      Есть к примеру некая кнопка, которая имеет несколько состояний, из которых важны: не нажатая и нажатая.
      В момент нажатия, TTouchAnimation пускает расходящийся круг, причем четко из центра нажатия.
      Ок, пусть на самом деле не круг, а картинку, указанную в... собсно, где???
      Как задать эту область, которая должна отображаться как реакция на нажатие?В редакторе среды, у объектов TButtonStyleObject есть свойство TouchAnimation: (TTouchAnimationAdapter), у которого в свою очередь есть свойство Link: (TBitmapLinks), которое как я считал и отвечает за эту область.
      Однако, при клике на это поле ничего не происходит.
      Баг среды, или моя удача???
      Как вы с этим боретесь?
      Других полей, где могли бы быть эти координаты я не нахожу.
      Заранее спасибо!

    • От Yarpda
      Подскажите пожалуйста есть ли какая-то информация по работе с Google календарем из FMX?
      Может быть у кого-то есть практика работы с ним? На форуме информации по этому поводу никакой не нашел.
      Интересует вопрос чтения и создания событий в календаре.
      Заранее благодарю.
    • От Tarik Live
      Здравствуйте! Уже почти неделю пытаюсь завести библиотеку org.eclipse.paho.client.mqttv3-1.2.0 в своём приложении. Я знаю о существовании компонента от TMS, но он не умеет работать в фоновом сервисе.
      Вот код который я использую для тестов:
       
      Стандартная библиотека org.eclipse.paho.client.mqttv3-1.2.0 выпадает в ошибку initializer error сразу на строчке 
      mqtt:=TJMqttClient.JavaClass.init(StringToJString('tcp://m23.cloudmqtt.com:11021'), StringToJString('java')); по логам с телефона стало понятно, что проблема в логах 😐 а конкретно когда библиотека пытается создать логгер выпадает ошибка что не найден файл локализации ru_RU для logcat (сами файлы там вроде как есть). Ладно. Скачал исходники почистил код библиотеки от упоминаний логгера, собрал ииии и ничего. Продвинулся до строчки 
      mqtt.connect(); также пробивал 
      mqtt.connect(mqttconopt); ничего не помагает, получаю ошибку сегментации класса 
      Пока не понятно куда копать дальше? Возможно что не все библиотеки можно использовать в delphi приложениях? 

      P.S Старая версия 1.1.1 тоже не завелась :(
      service test2.rar
    • От FREEFAR
      Всем доброго времени суток. 
      Казалось бы. Во время разработки и перед тем как подписали приложение сертификатом Distribution, пуши приходили норм. Но после того как прошли аудит Apple пуши куда-то пропали. FCM возвращал ошибку InvalidRegistration.
      Оказалось все достаточно просто. На сервере с которого мы отправляем пуш, В php скрипте, который отправляет пуши надо выставить
      sandbox = false
      Ура! Всем удачи)
    • От Юрий Гусач
      Доброго дня!
      Проясните пожалуйста ситуацию: при запуске программы  под Андроидом на различных устройствах я получаю размеры формы, которые вроде всегда в разы меньше чем максимальное разрешение экрана конкретного устройства. Я пробовал планшеты и разные смартфоны. Написал тестовую прогу, которая выводит СlientScreen и  ClientWidth формы, на которой ничего больше нет. Например для крайне бюджетного смартфона Fly FS-549 получилось 497 х 320, а по паспорту 854x480. Разрешение и так хреновое, а Delphi его еще сильнее уменьшает. -       Почему это происходит и можно ли как то это обойти?
       
       
    • От Андрей Лещинский
      Здравствуйте ребята. С Firemonkey знаком только два дня. Многое уже подчеркнул с данного форума. Спасибо вам. 
      Проблема заключается в том, что у меня sdk для андроид 7 версии. Я собираю apk файл, запускаю его на Андроид 7 и все отлично, но как только я устанавливаю приложение на Андроид например версии 5, то при запуске оно мерцает пару раз и потом отображается отлично. Не подскажите в чем проблема? Я пробовал проект с данного форума, чтобы форма уходила под статусбара. Вот все они и мерцают на Андроид ниже 7, другие не пробовал проекты
      Стаж у меня только 2 дня, скажите в какую сторону смотреть мне далее
    • От Bohdan
      Всем Привет!

      Платформа ios Delphi 10.2.2, хочу при нажатии на label показывать edit (для редактирования label.) Столкнулся с проблемой:
       Как отследить Tap  за пределами Edit чтобы его скрыть, не могу понять как это сделать.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу