还是继续昨晚写的,年前已经解决了这个问题,现在补记下。启动画面失真是本篇笔记的重点。搜索了很多文章,基本上大同小异,几乎都没怎么提及启动画面失真的问题。不知道是不是我的操作不对头,。
Project - Options - Application:
从下截图中可以清楚的看到程序图标需要5种尺寸,启动画面需要4种尺寸。是否使用启动画面通过勾选Include Splash Image选项。启动画面所用的各尺寸的图片不是简单的png格式图片,而是要经过特殊处理的.9.png格式。至于.9.png格式,不作赘述,一来网上大把的资料,二来自己用SDK自带的draw9patch.jar折腾半天也没做出个所以然,最后还是请做美工的同事帮忙搞定,看人家在PS中行云流水般的作业,羡慕的紧。为啥要用.9.png格式的图片呢,个人大体理解就是不同分辨率下,需要拉伸启动画面的图片时,保证图片的某一部分不会被拉伸/压缩导致启动画面失真。另外,我安装XE7是一路默认,所以我找到的draw9patch.jar在"C:Program Files (x86)EmbarcaderoStudio15.0PlatformSDKsadt-bundle-windows-x86-20131030sdk oolslibdraw9patch.jar"。如果会用PS的话,也可以做,反正我是没学会。需要注意的是.9.png图片一定要做对,否则执行Deploy操作时会报错。个人碰到的报错信息如下:
[PAClient Error] Error: E2312 ERROR: 9-patch image E:Android开发TestAndroidReleaseHSK
esdrawable-normalsplash_image_def.9.png malformed.
[PAClient Error] Error: E2312 Ticks in transparent frame must be black or red.
[PAClient Error] Error: E2312 Found at pixel #133 along top edge.
[PAClient Error] Error: E2312 ERROR: Failure processing PNG image E:Android开发TestAndroidReleaseHSK
esdrawable-normalsplash_image_def.9.png
做好了.9.png并在Application选项中设置好,只是第一步。
第2步,需要处理Project - Deployment,进行以下2步操作即可:
(1)找到Local Name为splash_image_def.xml的行,将行前的勾选条件去掉。
(2)将Remote Name列中值为splash_img.png的全部(4个,对应不同尺寸的启动画面)全部修改为splash_img_def.9.png。
经过这些处理,重新Deploy,终于在红米上看到了效果。
另外,Splash tile mode和Splash gravity的说明不再从网上摘抄了。可参考:http://jingyan.baidu.com/article/066074d652fd35c3c21cb0a2.html。