再次提笔写博客,已经相隔7年,原来的CSDN账号需要手机验证,而我的手机又捆绑到这个账号了,就用新账号吧,不想折腾了。

原账号的帖子,有研究DICOM3.0的可以看下:http://blog.csdn.net/ruanxundianzi/article/details/6551471

最近从Delphi7——XE2——XE5——XE7,一路升级到Delphi XE10.2.2 Tokyo(以下均是以该版本讲解),就为了Android App开发,而一开始就感觉到前所未有的困惑和障碍,App与PC的开发完全就是两个不同的世界,Delhi7也与XE分别很大,FMX要搞懂也真不容易,遇到问题后,度娘、QQ群、坛子都帮不上很大的忙,问个问题要不石沉大海,要不就是三眼两语模糊不清,怪不得DELPHI这么多年都不能折腾出大动静,还好DELPHI基础与钻研精神再次帮了大忙,在这里将遇到的坑先写出来,后续有人看,有时间再写吧。

用DELPHI开发Android和IOS APP,别想着可以就用DELPHI的知识解决一切问题,就像用JAVA写Android app时,也得了解下NDK C++吧,所以在DELPHI要开发出Android原生App的效果,不了解Android Java编程怎么行?所以前两周一直放下所有的事情钻了下JAVA APP开发,也写了几个小DEMO,算是入门,而就这个入门学到的知识,这次就解决了DELPHI遇到的两个问题。这里先假设你已经具备部署了DELPHI XE10.2.2 SDK完整环境,并能够创建、发布、调试Multi-Device Application了。

DELPHI XE Android Splash图片的设备自适应能力和沉浸式状态条,可以共用一个style.xml来配置显示效果,splash稍微麻烦点,谁叫DELPHI非要搞一个限制大小的Splash配置工具呢。

看了网上的帖子,基本都是在菜单Project——Options—Application下先设置Splash,然后用不同大小的png图片替换变态的DELPHI原有的半截图片,但感觉一点都不好,设备屏幕比例一变化,替换的图片变形还是很厉害,但我观察java开发的app,如淘宝和百度、糯米等,原生的APP Splash图片上连细小的文字都很清晰,变形基本没有(我说的是手机APP,平板就需要不同尺寸图片了,但原理都一样),这就是Android XXX.9.png图片的功劳,有兴趣的朋友可以自行百度.9文件的制作方法,这里假设你已经有一张符合Android规范的.9图片,并且已经按照上面通用的替换法替换掉原有的Splash图片。

Delphi中在建立Android工程后,再创建两个目录(values-v19和values-v21),每个目录中放一个style.xml,其中values-v19\style.xml中写入:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="AppTheme" parent="@android:style/Theme.NoTitleBar">
<item name="android:windowBackground">@drawable/splash_image</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style> </resources>

values-v21\style.xml中写入:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="AppTheme" parent="@android:style/Theme.NoTitleBar">
<item name="android:windowBackground">@drawable/splash_image</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">false</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
</resources>

这里解释下主要参数的意思:

1、<item name="android:windowBackground">@drawable/splash_image</item>

意思是窗口背景使用我们已经替换掉的.9图片,@drawable/splash_image指通过project——Options——Deployment中几个Remote Name为splash_image.png的图片,如下图:

2、<item name="android:windowTranslucentStatus">true</item>

这个参数设置为True就是状态栏透明

3、 <item name="android:windowTranslucentNavigation">false</item>

导航栏透明,这里设置为false,你可以试试改为true看看效果。

另外的参数都可以看百度上的解释,很全面,这里就不一一说了。

将刚才新建的两个style.xml加入到发布中,Remote Path必须改成下图的路径,是为了让设备上的Android系统根据自身版本自动使用DELPHI发布的最高版本Style.xml配置。

运行下看下沉浸式状态条的效果吧:

Splash效果就看源代码吧。源代码中主窗口中间的10张圆形图片布局还没有搞,别见笑。

下载地址:

https://download.csdn.net/download/u011784006/10288788

想交流的朋友可以给我发邮件:515334412@qq.com或直接QQ我,晴空无彩虹。

原文地址在这里

【转】Delphi XE10 Android Splash设备自适应和沉浸式状态条的更多相关文章

  1. Android 自动取色并设置沉浸式状态栏

    Android 自动取色并设置沉浸式状态栏 - Stars-One的杂货小窝 最近在进行产品的优化,也是研究了下沉浸式状态栏的实现方法及自动取色,记录一下笔记 设置沉浸式状态栏 1.添加依赖 这里,是 ...

  2. bootstrap 自适应和响应式布局的区别

    自适应:  不管屏幕多大,都尽量不换行,而只是横向缩放. 响应式: 屏幕变小了之后,属于同一行的元素受到挤压后,行的右边元素自动换行显式: 屏幕大了后,本属于同一行的元素尽可能的排在同一行内: boo ...

  3. Android ListView高度自适应和ScrollView冲突解决

    在ScrollView中嵌套使用ListView,ListView只会显示一行到两行的数据.起初我以为是样式的问题,一直在对XML文件的样式进行尝试性设置,但始终得不到想要的效果.后来在网上查了查,S ...

  4. 10.3制作Android Splash启动界面

    共分三步: 1.制作.9.png图片 可以参考这个文章. 2.修改项目文件,使用.9.png图片 用笔记本打开项目文件,先找到在项目中设置的Splash文件名,并改成第一步制作的.9.png文件名.例 ...

  5. 【技术分享会】 @第三期 CSS框架 PRUE 实现自适应和响应式

    Pure网址:https://purecss.cn/ 什么是响应式和自适应? .响应式:样式会随着屏幕大小改变,同一页面设备不同样式不同 .自适应:不管屏幕大小,页面的样式比例不变 响应式和自适应怎么 ...

  6. 自适应和响应式布局的区别,em与rem

    自适应布局:不同终端上显示的文字,图片,等位置排版都是一样的,只是大小不同. 响应式布局:通过媒体查询监听屏幕大小的变化,做出响应式的改变,在不同设备可能展现不同的样式效果. em:是相对其父元素的. ...

  7. 两句话,实现android 4.4以上实现沉浸式状态栏

    效果图如下,就是状态栏和actionbar保持一致的颜色,非常漂亮 1:在Activity的OnCreate函数 if (Build.VERSION.SDK_INT >= Build.VERSI ...

  8. android Titlebar一行代码实现沉浸式效果

    github地址 一个简单易用的导航栏TitleBar,可以轻松实现IOS导航栏的各种效果  整个代码全部集中在TitleBar.java中,所有控件都动态生成,动态布局.不需要引用任何资源文件,拷贝 ...

  9. Android 4.4沉浸式状态栏的实现

    要实现Android 4.4上面的沉浸式状态栏要用到开源项目SystemBarTint(https://github.com/hexiaochun/SystemBarTint) public clas ...

随机推荐

  1. Linux中常用压缩打包工具

    Linux中常用压缩打包工具 压缩打包是常用的功能,在linux中目前常用的压缩工具有gzip,bzip2以及后起之秀xz.本文将介绍如下的工具常见压缩.解压缩工具以及打包工具tar. gzip2 直 ...

  2. 【Java】【7】枚举类

    用处:规范了参数的形式,更简洁易懂 实例: //消息类型 public enum MessageTypeEnum { AdminReward(1, "官方消息"), StoreRe ...

  3. python中sys.argv[]的使用

    sys.argv[]主要用于程序从外部获取参数.其参数个数可以是多个,组建成一个列表(list). 几个简单示例如下: fun_test.py: #!/usr/bin/env python # -*- ...

  4. flex布局文本过长不显示省略号

    https://www.cnblogs.com/tgxh/p/6916930.html 解决方法: 给flex子元素添加css: white-space: nowrap; text-overflow: ...

  5. MYSQL--服务器的安装

    MYSQL--服务器的安装 学java已经好久了,但是还是没有学会安装数据库,这次重装系统后自己学了学,昨天晚上刚刚装好,卸载了,再装一次,就想着把它笔记下来.要不又忘了.. 1.删除你的服务.在cm ...

  6. Qt_自定义菜单

    一.右键菜单 右键菜单实现:通过重写contextMenuEvent(QContextMenuEvent *event)事件,QMenu+QAction即可完美实现! 重写voidcontextMen ...

  7. MySQL安装教程(mysql5.6_bundle)

    1.下载软件包 下载链接:https://dev.mysql.com/downloads/mysql/5.6.html#downloads centos6--MySQL-5.6.35-1.el6.x8 ...

  8. gradle set

    gradle安装   1◆ gradle下载 http://services.gradle.org/distributions/       2◆ 配置环境 =====>D:\envs\grad ...

  9. Ubuntu Windows双系统重装windows后看不到ubuntu启动引导

    1.下载并安装Easy BCD 2.点击编辑引导菜单,看到只有windows一项 3.点击“添加新条目”,添加引导菜单,选择linux/bsd ,类型选择GRUB 2,然后输入名称,选择Ubuntu所 ...

  10. shell 流程控制语句

    case语句 case $变量名 in "值1")   如果变量的值等于值1,则执行程序1 ;;  "值2")   如果变量的值等于值2,则执行程序2 ;;   ...