September 15, 2013 - 1 comment.

A case for XXHDPI and UHDPI Android resources

I'm hoping to reverse a couple of choices made by the Android Dev Team concerning image resources. The first is the suggestion that XHDPI is good enough for most use cases so XXHDPI resources aren't necessary. Second, the newly-introduced resource name for 4k / Ultra HD screens: XXXHDPI.

I'll start with the easy one: XXXHDPI resolution should be called UHDPI.

Within a few years, there's a good chance MDPI and HDPI will be deprecated, just as LDPI is today. This will leave us with XHDPI, XXHDPI, and XXXHDPI as the standard identities for Android resources. X, XX, and XXX. That's silly.

There's also the xxx-means-porn issue. I'll leave that alone.

XXXHDPI came about due to a need for resources for the new 4k TVs. These TVs also happen to be called Ultra HD TVs, or UHD TV. 4k is the more popular name, but UHD is still batted around. The UHD name offers Android a much cleaner & clearer option for UHDPI to be an easily recognizable ID.

We still have time to change XXXHDPI to UHDPI, so do it now.

As for XHDPI being good enough for XXHDPI screens, that's just short-sightedness.

Samsung's Galaxy S4 is the top selling Android device in the US market and has an XXHDPI screen. Because it is the dominant Android device, it sets the standard. As such the standard Android resolution today is now XXHDPI.

Google simply isn't keeping up: Nexus & Motorola screens are still only XHDPI resolution. Google and Motorola are essentially selling 720p screens while Samsung and HTC have moved on to 1080p.

They're not turning back.

It's also a bit sloppy in a few ways. First, it looks bad for the Android Dev Team to not recognize where the platform is, rather than where they think it should be. It diminishes their authority.

Second, it looks bad. XHDPI resources have to be scaled up 50% on XXHDPI devices. That makes them look blurry. For each pixel in the image, the device must make a pixel and a half. This affects both edges and alignment (See above image).

I have two major app updates coming out built on the latest sdk. All of my created resources include XXHDPI and look great on my Galaxy S4. I've at least been able to duplicate common JB icons since the Dev Team supplied vector sources (thank you!). But native device components like the Switch, Spinner, and Checkbox look terrible (see above). They're more work, requiring custom components that *look* like native components just so they look sharp and up to date.

I don't think Google needs to be the hardware leader of the platform, but the Android Dev Team should at least recognize where things are today and update their OS and design resources to include XXHDPI. Maybe not everything needs to be upscaled to XXHDPI as they suggest, but all of the Holo UI icons and components need it. We needed them a while ago.

It's particularly important now that Apple is launching their ultra-thin vector UI this week. It'll be a sharp and obvious contrast to the current Android UI. Maybe the masses won't notice, but those with good eyes do.

It's an easy enough fix, so why hesitate? XXHDPI apps like ours are going to look awesome. Don't hold us back, please.

Published by: radley in Android, Rants

Comments

Stole Anastasov
September 23, 2013 at 11:20 am

To add to the rant:
It would also be nice if some of the private styles are made public.
Customizing a NumberPicker, DatePicker, DialogFragment is a pain in the …..

Leave a Reply