Android, tablets, and mdpi-large

Sat, Jul 3, 2010 3-minute read

When the Dell Streak was first launched there was an aspect of it that caught me off guard, its' pixel density, and it would appear I’m not alone.

Before the Streak developers could pretty much assume that if their app was installed via Google Market any device which reported itself as having low density display (ldpi) had a QVGA screen, any device with a medium density (mdpi) screen had a HVGA screen, and any device with a high density (hdpi) screen had a WVGA screen, and that seemed to work pretty well.

The Streak, however, has a WVGA screen but reports itself as a mdpi device. This may sound wrong, but it is, in fact, totally correct in doing so. The reason for this is that the Streak has a physically larger screen than previous devices which means that the centers of the pixels are not as close together. In fact the centers of the pixels are far enough apart for it to be classed as a medium density (mdpi) screen, not a high density as has been the case with previous WVGA devices.

Where this causes problems is for home screens with a fixed number of icons in a grid similar to the one in the Facebook or Twitter apps. The Streak is only an Android 1.6 device so I couldn’t test Twitter on it, but if you put a Nexus One and a Streak side by side and go to the “home” screen in the Facebook app you’ll see the problem; namely lots of whitespace on the screen even though the screens have exactly the same resolution (800x480);

Android Facebook on an hdpi & mdpi-large display

This isn’t because the Facebook app doesn’t contain icons which would fill the screen on the Streak (if that was the problem you’d also see lots of whitespace on the Nexus Ones' screen). The problem is that, like many developers, the developers of the Facebook app seem to have assumed that any device reporting a mdpi screen has the resolution of a HVGA screen, and so the Streak uses the icons for an HVGA screen on its (far larger) WVGA display, which leaves lots of whitespace.

If you thought that this might be isolated to the facebook app then I’m sorry to tell you that you’re wrong. Here is a photo of another popular Android app which has noticeably more unused empty screen space on the Streak than the Nexus One;

Android Weather Channel on an hdpi & mdpi-large display The weather channel app with large areas of empty space on each line on the Streak.

So if you’re a developer you’ll need to really think about how you’re using ldpi, mdpi, and hdpi, because the Streak may be the first device to show the problem, but it’s unlikely to be the last.

Update: After getting the Android 2.1 update for the Dell Streak I was able to install and test the Google developed Twitter app, and guess what, yup, it doesn’t handle mdpi-large well either;

Twitter on the Dell Streak on Android 2.1

[Note: If you want some ideas for dealing with the multiple resolutions you can see the related discussions on the android-developers Google group]

droidcon London logo