最近刚刚接触混合开发,使用的是Cordova+Bcakbone,在写splash画面的时候,在模拟器上测试没有问题,但是在测试的时候发现测试机(Note3)只显示progressdialog不会显示图片(模拟器正常)。
config文件如下:
<platform name="android">
<allow-intent href="market:*" />
<splash src="www/img/splash_3_4.png" />
<preference name="SplashScreenDelay" value="3000" />
</platform>
splash_3_4分辨率为1500*2000,文件大小为500kb
我以为cordova配置的问题,所以导致在手机上不能正常显示,找了一遍资料,试了很多方法还是不能正常显示。
下班之后回到家,想解决这个困扰了一天的问题,按照公司代码的写法,在网上随便找了个图片,build,run,结果在真机上可以正常运行!
第二天到了公司之后,把图片替换成了另外一张图片(一共提供了3张图片,之前选的是分辨率最小的),图片分辨率为1500*2250,文件大小也是500kb,测试的时候在虚拟机也可以正常显示,在真机测试的时候显示了OOM!
所以我猜想是不是图片分辨率过大,导致了OOM。
将图片换成了一个普通的720*1280的png之后,问题解决,虚拟机和真机都正常显示。
总结:
1.由于之前只显示progressdialog没有错误Log输出,我以为是图片过大就不会加载,需要另外做设置才会正常显示,所以一直在这个方向寻找解决的方法。
2.好像这个插件只支持xdpi-hdpi,我就把超过xdpi的density属性删掉了,这样没有设置到的分辨率好像就会默认加载这个(个人猜测,有不对的地方请指出)。