再次提笔写博客,已经相隔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. Pandas读取文件

    如何使用pandas的read_csv模块以及其他读取文件的模块?? 一起来看一看 Pandas中read_csv和read_table的区别 注:使用pandas读取文件格式为pandas特有的da ...

  2. Python while循环实现重试

    try: pass#要执行的代码 except: 状态=True while 状态==True: try: winsound.Beep(800, 1000)#报警提示音 循环=300 while 循环 ...

  3. WDA基础五:ALV组件的使用

    说明,因为ALV的功能比TABLE强大,所以在很多时候都习惯性的选择ALV显示. ALV是WDA的组件,封装好的,和SELECT OPTION一样.所以使用的方法一般就是:引入组件,初始化组件,数据绑 ...

  4. Mybatis自动生成实体类,映射文件,dao

    http://www.mybatis.org/generator/index.html 方法一:eclipse插件式 1.下载 mybatis-generator-core-1.3.2.jar 解压后 ...

  5. MongoDB 教程(四):MongoDB 概念解析

    概述: 不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档.集合.数据库,下面我们挨个介绍. 下表将帮助您更容易理解Mongo中的一些概念: 数据库 先运行数据库 C: ...

  6. Hadoop 2.7.3 完全分布式维护-简单测试篇

    1. 测试MapReduce Job 1.1 上传文件到hdfs文件系统 $ jps Jps SecondaryNameNode JobHistoryServer NameNode ResourceM ...

  7. Spring JdbcTemplate 查询出的Map,是如何产生大小写忽略的Key的?(转)

    原文地址:Spring JdbcTemplate 查询出的Map,是如何产生大小写忽略的Key的? 原始讨论组:用Spring JdbcTemplate 查询出的Map,是如何产生大小写忽略的Key的 ...

  8. JavaScript 上万条数据 导出Excel文件 页面卡死

    最近项目要js实现将数据导出excel文件,网上很多插件实现~~那个开心呀,谁知道后面数据量达到上万条时出问题:浏览器不仅卡死,导出的excel文件一直提示网络失败.... debug调试发现var  ...

  9. xmanager运行报错:bash: /usr/bin/xterm: No such file or directory

    1.原因 xterm没有安装,解决办法是下载然后安装即可. 如果机器可以用yum,则直接使用yum安装xterm即可: yum install -y xterm 如果没有网络,则在某台操作系统大版本相 ...

  10. startActivityForResult的用法,以及intent传递图片

    开启startActivityForResult. Intent intent = new Intent(); intent.setClass(MainActivity.this, MipcaActi ...