如何使用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并在<application ..>
标签中添加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 应用程序?