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

Posted

技术标签:

【中文标题】如何使用Delphi更改Android应用程序中的标题栏颜色【英文标题】:How to change the title bar color in android app using Delphi 【发布时间】:2017-04-30 17:55:12 【问题描述】:

我正在使用 Delphi 10.1 Berlin 开发 android 移动应用程序。我需要更改 Android 应用程序的标题栏颜色,在搜索互联网时,我发现了一些示例链接:Android Material design implementation 和 Stack overflow Question。但是我还没有找到任何使用 Delphi 来实现它的链接。请帮助我进一步进行。

【问题讨论】:

【参考方案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并在&lt;application ..&gt;标签中添加android:theme="@style/AppTheme"而不是android:theme="%theme%"

【讨论】:

我尝试将黑色更改为绿色,但只显示默认黑色。它适用于 Delphi 10.1 Seattle 吗?【参考方案2】:

这仅适用于启用包含启动图像选项

检查这个 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\

【讨论】:

在 XML 中我们应该在哪里提及颜色?正如您提到的远程路径为“\res\values-v21\”,我是否需要提及android基本版本。【参考方案3】:

您可以使用我在 github 中的代码更改系统栏颜色(状态栏或导航栏):

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

额外:您甚至可以使用 VisibilityOverlapping 使其半透明,并在其后面添加图像。所有示例都在存储库中。

【讨论】:

【参考方案4】:
SharedActivity.getWindow.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_FULLSCREEN);

适用于 10.3.3

【讨论】:

欢迎来到 Stack Overflow。请在 Stack Overflow 上仅以英文发布。 Stack Overflow en español有一个西班牙语网站

以上是关于如何使用Delphi更改Android应用程序中的标题栏颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个通知服务器,在数据库更改时通知 Delphi 应用程序?

如何使用Delphi XE2覆盖WSDL中的服务名称?

Delphi 中的 BDE 与 ADO

在 Delphi 中,如何更改 TDBGrid 中网格线的颜色?

在覆盖模式下如何更改 Delphi 的光标形状?

如何从 Delphi Android 应用程序开始视频通话?