Based on this dashboard https://developer.android.com/about/dashboards/:
92% of Android devices are "Normal size with hdpi-xxhdpi density"
Unfortunately that info does not help to understand what the approximate resolution of those devices.
As I was digging through different sites to understand the concept of screen size and density I have found following concept:
normal screens are at least 470dp x 320dp
large screens are at least 640dp x 480dp
xlarge screens are at least 960dp x 720dp
As xxxhdpi refers to x4 scale I expect something like:
Normal screen with xxhdpi density will be < 1880x1280 pixels (typical 1920x1080?)
Large screen with xxhdpi density will be < 2560x1920 pixels (typical 2560x1440)
But then I found this table -https://material.io/tools/devices/
And it does not fit at all. For example:
Samsung Galaxy Note 4 - 5,7" 1440x2560 (515dpi) - xxhdpi (x3)
Nexus 6P - 5,7" 1440x2560 (515dpi) - xxxhdpi (x3.5)
As you can see, devices with identical screens goes to different buckets.
Can anyone tell what is wrong with my assumptions?
The reason I need this is because I developed a game for Android and I want to optimize it. My reference resolution for art is 2732 x 2048 (the largest for mobile devices). I want to build separate APK for usual 1920x1080 and lower resolution, so it will save disk space and RAM on user device.
While building android apps, it's important to know the DPI (Dots Per Inch) value, but in case you are not sure about the mobile device the user is using, the dpi may vary and hence, the concept of PPI (Pixel Per Inch) comes into play.
The problem with your assumption is that while considering PPI and DPI, always leave DPI and select PPI cause it will give you an accurate result. Both the phones have a different PPI and hence, the xxxhdpi goes up in case of Nexus6P as compared to xxhdpi Note 4
XXXHDPI= Extra Extra Extra High Dots Per square inch.
XXHDPI= Extra Extra High Dots Per Square inch.
Note that one 'extra' in their full form.
drawable-xxhdpi, 480 PPI (3 x 160 PPI)
drawable-xxxhdpi, 640 PPI (4 x 160 PPI)
As you can see the PPI varies and hence, Nexus 6P has PPI somewhere between that range.
Related
Are there xxxhdpi density devices?
Android devices screen density increases (see https://github.com/paulvi/displayclasses) and there are already devices with density higher than xxhdpi (extra-extra-high) ~480dpi
like Samsung Galaxy S6 577 2560 1440
(But I cannot check if it is really xxxhdpi)
Is it time to prepare 192x192 icons?
(4x times 48x48 dp, see http://developer.android.com/design/style/iconography.html )
See also Android Official Icons for XXHDPI and XXXHDPI
UPDATE: Was asked a year before as Android xxx-hdpi real devices
Also Nexus 6 and Nexus 9 Screen density
Just for reference purpose, now Google maintain a list of devices density and other information at https://design.google.com/devices/ which is mainly targeted for material design guideline.
Are there xxxhdpi density devices?
Afaik Nexus 6 is xxxhdpi device
New phones already use XXXHDPI.
Our test phone Samsung S6 Edge use xxxhdpi drawable resources. Someone already mentioned that Nexus 6 also using this dimension. Thus new phones with good screen should use this dimension.
xxxhdpi density devices Resolutions :
2048x1536
2560x1536
2560x1600
In Nexus 6
For more help :
http://developer.android.com/guide/practices/screens_support.html
Actually, no, even as of 2016, there are still no xxxhdpi device.
The largest resolution on Android device is used by Xperia Z5 Premium (4k on 5.5", or roughly 806ppi), and even on that device, it was only used that humongous screen density for multimedia contents. The UI itself was rendered by halving the effective density by two, so it actually scales down from 4k to full HD on 5.5", or xxhdpi.
Specs for Xperia Z5 Premium : http://www.gsmarena.com/sony_xperia_z5_premium-7536.php
I found 8 corresponding devices here.
My Samsung S22, released in February 25, 2022, has a 600 dpi when resolution is set to its highest (3088 x 1440), and more importantly, it loads xxhdpi resources, which means that we aren't there yet in terms of smartphones with 640 DPI or more screen density, and even if your phone contains 600 dpi like my S22 does, which is just 40 dpi shy off 640, it'll still load the 480 dpi (xxhdpi) resources.
I guess we'll get to 640 dpi in a year or two, I also expect the AOSP to add a xxxxhdpi to the source code very soon just as xxxhdpi was added in 2013, long before any 640 dpi handset was released.
what's the folder name for 1080p resource on android?
I know mdpi support 320x480
hdpi support 480x800
xhdpi support 720p
Unfortunately it isn't that easy. Mdpi, hdpi and xhdpi are all select based on screen density - basically the size of the pixels - not the number of pixels. So, if your 1080p screen is very large, it could conceivably be an mdpi screen (yes, it happens). You have the alternative to use small, normal, large and xlarge as selectors but these aren't tightly defined. A 1080p screen should be xlarge but so should a 720p.
The document at http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources is useful.
This is a poorly worded question, but it seems like you are trying to support the new 1080 x 1920 phones coming out. The maximum pixel density that Android supports is 480 dpi, which is called xxhdpi.
A phone (3"-5" diagonal) at 1080 x 1920 will fall into the xxhdpi density, like the Samsung Galaxy S4 at 441 dpi. However, a tablet (7"+) at 1080 x 1920 will not be xxhdpi, so do not assume that density correlates to resolution.
You can clear about the Screen size, density pixels in android. I found tutorial Tips for designers and developers Android
I'm a bit confused and i hope you can help me. I'm developing an application for smartphones and i'm using prefixes like: mdpi, hdpi and xhpi. With first two i don't have any problems.
According to this:
http://developer.android.com/guide/practices/screens_support.html
and this
http://developer.android.com/about/dashboards/index.html
xhdpi is 640x960 px screen size and I have prepared my graphics for this resolution. But I can't find any device with this resolution. Instead of this, in android layout editor I have, for example, Galaxy Nexus which is marked as xhdpi device, but it has 720p screen size.
So my question is, I should look at this tables from documentation and believe that 25% devices has screen of size 640x960 px or I should change my graphics to the 720p screen size ?
If you develop only for phones and tablets for you is unnecessary you may not use xhdpi folder for your resources. If you want that your app works fine on modern devices such as Galaxy Nexus, Nuxus 4, etc you should support xhdpi screens.
large screens are at least 640dp x 480dp (hdpi)
xlarge screens are at least 960dp x 720dp (xhdpi)
hi guys i have been developing android app that should match most of the screen resolutions. And i just got struck at setting the drawable folder for this two resolution
1. 480 x 800 with approximate density of 217
2. 540 x 960 with approximate density of 240
And i have a different set of images for both the resolutions and i have set hdpi for 540 x 960 but don't have an idea of going about the 480x800 which also falls under hdpi. After goggling found a drawable qualifier called tvdpi which supports the appr. density of 213
When i set the tvdpi qualifier to the drawable folder i get "invalid resource directory name" error
Resolution and dpi are not directly related. It just so happens that many 800x480 devices are HDPI, then can just as easily be low dpi though if the screen is big enough.
If you really need direct resolution matching you will need to target API level 13 and use available width and height qualifiers for your resources or if you need to target a lower API level than 13, create your own resource loading scheme.
You can also use a combination of density and size qualifiers but that still leaves some room for two different resolutions falling into the same bucket.
But before you pick, you need to ask yourself do you really want the same pixel size for your drawables on a 3.7" 480x800 screen as you do for a 7" 480x800 screen.
I am considering to drop support for small screens in my app.
Recently I have stumbled upon Screen Sizes and Densities and currently (2011-10-01) it says that 3.5 percent of the active devices fall into the small/hdpi category. I wonder what device actually has a small screen with high pixel density?
I know of the HTC Wildfire which has 240 x 320 pixels, 3.2 inches (~125 ppi pixel density). If I understand correctly that would be an ldpi device. For my app the Wildfire has a share of somewhere around 2 percent.
So first, why does Screen Sizes and Densities not list anything under small/ldpi? And second, what would be an example of a small/hdpi device?
There are some device from Dell like Aero which comes under small/hdpi.
HTC Tattoo can be considered under small/ldpi
Just to add to Basavraj's answer, Guessing the screen size is not that simple. Like Galaxy note has 1200 X 800 screen dimensions but it's screen size falls in large(and not in extra-large) category.