如何使用Delphi更改Android应用程序中的标题栏颜色

时间:2017-04-30 17:55:12

标签: android delphi firemonkey delphi-10.1-berlin delphi-10.2-tokyo

我正在使用Delphi 10.1 Berlin开发Android移动应用程序。我需要更改Android应用的细条颜色,在搜索互联网时,我找到了一些示例链接:Android Material design implementationStack overflow Question。但我没有找到使用Delphi实现这一点的任何链接。请帮我继续。

4 个答案:

答案 0 :(得分:1)

在./res文件夹

中部署styles.xml

此文件内容示例:

<?xml version="1.0" encoding="utf-8"?>
<resources>

  <style name="AppTheme.EditTextStyle" parent="@android:style/Widget.Holo.Light.EditText">
    <item name="android:background">@null</item>
  </style>

  <style name="AppTheme" parent="@android:style/Theme.Holo.Light.NoActionBar"> 
    <item name="android:editTextStyle">@style/AppTheme.EditTextStyle</item>
    <item name="android:colorPrimary">#ff2b2e38</item>
    <item name="android:colorAccent">#ff0288d1</item>
    <item name="android:windowBackground">@android:color/black</item>
    <!-- <item name="android:windowTranslucentStatus">true</item> -->
  </style>

</resources>

编辑androidmanifest并在<application ..>标记中添加android:theme="@style/AppTheme"而不是android:theme="%theme%"

答案 1 :(得分:1)

这仅适用于启用Include Splash Image选项

检查一下 http://blog.rzaripov.kz/2016/12/android-ios.html(俄语) https://github.com/rzaripov1990/FMX.StatusBar(演示项目)

<强> styles.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="AppTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:windowTranslucentStatus">true</item>
        <item name="android:windowTranslucentNavigation">false</item>
        <item name="android:windowBackground">@drawable/splash_image_def</item>
        <item name="android:windowNoTitle">true</item>
    </style>
</resources>

<强>部署

- Remote Name = styles.xml
- Remote path = \res\values-v21\

答案 2 :(得分:0)

您可以去掉系统背景色,在系统栏下方添加控件,作为系统栏背景。

设置状态栏和导航栏背景全透明的代码来源:

https://github.com/viniciusfbb/fmx_tutorials/tree/master/delphi_android_system_bars/

你可以放一个TRectangle作为状态栏背景:

uses
  iPub.Android.SystemBars;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Fill.Kind := TBrushKind.Solid;
  Fill.Color := TAlphaColors.White;
  TAndroidSystemBars.SetSystemBarsBackground(TAlphaColors.Blue, TAlphaColors.White);

  Rectangle1.Fill.Color := TAlphaColors.Blue;
  Rectangle1.Align := TAlignLayout.MostTop;
  Rectangle1.Height := TAndroidSystemBars.GetStatusBarHeight;
end;

答案 3 :(得分:-1)

SharedActivity.getWindow.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_FULLSCREEN);

在10.3.3上运行