我正在使用Delphi 10.1 Berlin开发Android移动应用程序。我需要更改Android应用的细条颜色,在搜索互联网时,我找到了一些示例链接:Android Material design implementation和Stack overflow Question。但我没有找到使用Delphi实现这一点的任何链接。请帮我继续。
答案 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)
检查一下 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上运行