Bad image quality on Android

Everyone,

After doing some digging, we discovered that Android’s OpenGL surfaces have a 16-bit color depth by default. In fact, you can see this issue on an Android device’s web browser app by going to the website Sven provided us. So even though Corona sets up OpenGL to use 32-bit color on the C++ side, the Android OpenGL surface on the Java side was limited to 16-bit.

Now here’s the good news!
We found a way to bump up the color quality on Android from 16-bit to 32-bit. Now the gradient banding/striping issue has gone away! This is a huge color quality improvement.

This enhancement will be made available in the next daily build, #642. [import]uid: 32256 topic_id: 14468 reply_id: 61955[/import]

I’m happy if this little push helped anyhow to make a step for all the Android developers.

BTW: My friend says he can see some little banding effects on his PC display (maybe a cheap one), but not on the Galaxy S2. In some forums I read that a lot of people have problems with banding effects on S2 - maybe earlier models!? [import]uid: 70114 topic_id: 14468 reply_id: 62030[/import]

We’ve noticed scaled transparent PNG on Android look jagged on the edges, yet smooth & nice on iOS. [import]uid: 4596 topic_id: 14468 reply_id: 62128[/import]

Did it always looked jagged on Android or did this start happening in build 642? [import]uid: 32256 topic_id: 14468 reply_id: 62296[/import]

Big improvement! Gradients looks great now on my Galaxy S2. So, this confirms that the Galaxy S2 doesn’t have a lower quality display :stuck_out_tongue:

Thanks one more time! [import]uid: 46216 topic_id: 14468 reply_id: 62316[/import]

@Joshua Quick

I’m sorry, we cannot definitively assert when resized transparent PNG began appearing with jagged edges on Android. The best I can say is that we only started noticing it within the last 2-3 weeks. [import]uid: 4596 topic_id: 14468 reply_id: 62393[/import]

CodeRebelBase,

Perhaps your images appear jagged because they are being scaled-up on higher resolution displays due to Corona’s “dynamic content scaling” feature. Does your iOS device have a lower resolution than your Android device? If it’s not an iPhone 4 then this is probably what’s happening. In which case you’ll need to create multiple sizes of your images and use the display.newImageRect() API instead to display higher resolution images on higher resolutions displays.
[import]uid: 32256 topic_id: 14468 reply_id: 62423[/import]

@Joshua Quick

No, it’s a high resolution that is only checked for constraint, it is only ever down-scaled. It’s really only that noticeable on an Android 3.2 tablet. Everything else looks great though. [import]uid: 4596 topic_id: 14468 reply_id: 62505[/import]