Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
None
-
None
-
None
-
xxxhdpi devices
Description
This seems to be a documentation issue, but for the record here is the back story first:
I reused the iOS 2730x2730 universal splash screen for the Android version, and copied the config.xml settings
<splash src="res/screen/android/splash-port-hdpi.png" density="port-hdpi"/> <splash src="res/screen/android/splash-port-ldpi.png" density="port-ldpi"/> <splash src="res/screen/android/splash-port-mdpi.png" density="port-mdpi"/> <splash src="res/screen/android/splash-port-xhdpi.png" density="port-xhdpi"/>
as they are on https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-splashscreen/ Then my app is crashing with
Fatal Exception: java.lang.RuntimeException: Canvas: trying to draw too large(119421184bytes) bitmap.
on startup on xxxhdpi devices (e.g. Samsung S8). Note the 119421184 bytes are 2730^2 pixel * 4 bytes color depth times an extra 2^2; The last factor is the rescaling from xhdpi -> xxxhdpi.
I believe the documentation should be saying
<splash src="res/screen/android/splash-screen.png" density="anydpi"/>
since the splash screen is scaled to fill the screen anyways, we certainly don't want to blow it up first because we have a high dpi device.