One of our user complaint that app does not look good on New Nexus 7(1200*1900 with 323PPI resolution). I am not getting which layout folder I have to create to give support this new device.
You should use layout-sw600dp because large might include 5 inch devices like Dell Streak also - From the Android guidelines.
The new Nexus 7 uses xhdpi resources but for app icon, it uses xxhdpi. That's what I've observed in my app on my Nexus 7.
Should fall into xhdpi bucket.
ldpi : ~120dpi
mdpi : ~160dpi
hdpi : ~240dpi
xhdpi : ~320dpi
The new Nexus 7 is of 320dpi. So it falls on the large xhdpi bucket.
So you can specify layout as layout-large-xhdpi.
Nexus 7 picks the resources from tvdpi folder . Please try that like layout-large-tvdpi, drawable-large-tvdpi.
Sorry , I was talking about old Nexus 7 , new Nexus 7 picks up from large-xhdpi.
Related
I'm developing an android app. I've done much so far, but I've some problems. So far, I've compiled the app on Nexus 5 and I've designed the layout for that device. I know that, I should have different layout folders for different screen categories, but my problem is that, for example, my app works pretty good on Nexus 5, but not good on Nexus S.
And I also know that those 2 devices are in the same layout category.
How can I solve this issue? I want a layout for Nexus S which differs Nexus 5.
Note: Please, do not comment documentation links. I've read them all, but couldn't solve my problem.
Thanks!
From official documentation:
ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi
Using desnity:
Nexus 5 is ~445 dpi => belong to xhdpi category.
Nexus S is ~233 dpi => belong to mdpi category.
So you can use layout-xhdpi directory for Nexus 5, and layout-mdpi directory for Nexus S.
UPDATE
Using dimensions:
Nexus 5 is 1080 x 1920 pixels. => layout-1080x1920 directory
Nexus S is 480 x 800 pixels. => layout-480x800 directory (or just the default one)
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.
I want to provide drawables for:
hvga and qvga phones (but those use hdpi drawables pretty well)
hdpi phones
xhdpi phones
xxhdpi phones
7" tablets
10" tablets
I have folders:
drawable-hdpi (used by phones up to 480x854 screens)
drawable-xhdpi (used by phones like Galaxy S3)
drawable-xxhdpi (used by phones like Galaxy S4)
drawable-sw600dp (I would expect: used by 7" tablets)
drawable-sw720dp (I would expect: used by 10" tablets)
My original problem was, I thought resources from drawable-sw720dp are not used, but they are! Some graphic designer gave me files with different names and I did not notice. My fault.
So no problem at all.
For supporting tablets also, use large, xlarge qualifiers. Nexus 7 is a large-hdpi tablet(technically it's tvdpi, but takes images from hdpi). So if you want to put images for Nexus 7, make a folder named drawable-large-hdpi and put the images there.
Now regarding the 10 inch tablets case, they are xlarge devices and their densities can change from mdpi to xhdpi(Nexus 10). But many have resolution of 1280 * 800 and they are mdpi devices.
Create drawable folder like this
// for Phones
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-xxhdpi
//for 7 inch tablets
drawable-large-mdpi
drawable-large-hdpi(for Nexus 7)
// for 10 inch tablets
drawable-xlarge-mdpi
drawable-xlarge-xhdpi(for nexus 10)
Source of answer
My original problem was, I thought resources from drawable-sw720dp are not used, but they are!
The Google Nexus 10 comes out shortly, and is the first device to use xxhdpi resources. It sports a display density of about 300 DPI (according to the Nexus 10 website and this calculator).
However, when I go to the Android documentation, it states:
ldpi : ~120dpi
mdpi : ~160dpi
hdpi : ~240dpi
xhdpi : ~320dpi
xxhdpi is not specified.
How come the Nexus 10's 300 DPI screen is xxhdpi instead of xhdpi, and what should be the approximate DPI of xxhdpi? Should we even worry about having new resources (aside from icons) for xxhdpi at this point, or should we just let the OS scale up xhdpi resources?
According to the post linked in the G+ resource:
The gorgeous screen on the Nexus 10 falls into the XHDPI density
bucket. On tablets, Launcher uses icons from one density bucket up
[0] to render them slightly larger. To ensure that your launcher icon
(arguably your apps most important asset) is crisp you need to add a
144*144px icon in the drawable-xxhdpi or drawable-480dpi folder.
So it looks like the xxhdpi is set for 480dpi. According to that, tablets use the assets from one dpi bucket higher than the one they're in for the launcher. The Nexus 10 being in bucket xhdpi will pull the launcher icon from the xxhdpi.
Source
Also, was not aware that tablets take resources from the asset bucket above their level. Noted.
xxhdpi was not specified before but now new devices S4, HTC one are surely comes inside xxhdpi .These device dpi are around 440. I do not know exact limit for xxhdpi See how to develop android application for xxhdpi device Samsung S4
I know this is late answer but as thing had change since the question asked
Note Google Nexus 10 need to add a 144*144px icon in the drawable-xxhdpi or drawable-480dpi folder.
The DPI of the screen of the Nexus 10 is ±300, which is in the unofficial xhdpi range of 280‑400.
Usually, devices use resources designed for their density. But there are exceptions, and exceptions might be added in the future.
The Nexus 10 uses xxhdpi resources when it comes to launcher icons.
The standard quantised DPI for xxhdpi is 480 (which means screens with a DPI somewhere in the range of 400‑560 are probably xxhdpi).
480 dpi is the standard QUANTIZED resolution for xxhdpi, it can vary something less (i.e.: 440 dpi) or more (i.e.: 520 dpi). Scale factor: 3x (3 * mdpi).
Now there's a higher resolution, xxxhdpi (640 dpi). Scale factor 4x (4 * mdpi).
Here's the source reference.
The resolution is 480 dpi, the launcher icon is 144*144px all is scaled 3x respect to mdpi (so called "base", "baseline" or "normal") sizes.
The newer android phones in the market like HTC one, Xperia Z etc have resolutions in the >480dpi range, putting them in the new xxhdpi class as well. The new assets might be useful for them too.
A set of four generalized sizes: small, normal, large, and xlarge
Note: Beginning with Android 3.2 (API level 13), these size groups are deprecated in favor of a new technique for managing screen sizes based on the available screen width. If you're developing for Android 3.2 and greater, see Declaring Tablet Layouts for Android 3.2 for more information.
A set of six generalized densities:
ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi
From developer.android.com : http://developer.android.com/guide/practices/screens_support.html
As per this PPI calculation tool, Google Nexus 10 has a display density of about 300 DPI...
However, Android documentation states that:
ldpi : ~120dpi
mdpi : ~160dpi
hdpi : ~240dpi
xhdpi : ~320dpi
xxhdpi is not specified.
I think we just let Android OS scale up xhdpi resources...
The Google Nexus 10 comes out shortly, and is the first device to use xxhdpi resources. It sports a display density of about 300 DPI (according to the Nexus 10 website and this calculator).
However, when I go to the Android documentation, it states:
ldpi : ~120dpi
mdpi : ~160dpi
hdpi : ~240dpi
xhdpi : ~320dpi
xxhdpi is not specified.
How come the Nexus 10's 300 DPI screen is xxhdpi instead of xhdpi, and what should be the approximate DPI of xxhdpi? Should we even worry about having new resources (aside from icons) for xxhdpi at this point, or should we just let the OS scale up xhdpi resources?
According to the post linked in the G+ resource:
The gorgeous screen on the Nexus 10 falls into the XHDPI density
bucket. On tablets, Launcher uses icons from one density bucket up
[0] to render them slightly larger. To ensure that your launcher icon
(arguably your apps most important asset) is crisp you need to add a
144*144px icon in the drawable-xxhdpi or drawable-480dpi folder.
So it looks like the xxhdpi is set for 480dpi. According to that, tablets use the assets from one dpi bucket higher than the one they're in for the launcher. The Nexus 10 being in bucket xhdpi will pull the launcher icon from the xxhdpi.
Source
Also, was not aware that tablets take resources from the asset bucket above their level. Noted.
xxhdpi was not specified before but now new devices S4, HTC one are surely comes inside xxhdpi .These device dpi are around 440. I do not know exact limit for xxhdpi See how to develop android application for xxhdpi device Samsung S4
I know this is late answer but as thing had change since the question asked
Note Google Nexus 10 need to add a 144*144px icon in the drawable-xxhdpi or drawable-480dpi folder.
The DPI of the screen of the Nexus 10 is ±300, which is in the unofficial xhdpi range of 280‑400.
Usually, devices use resources designed for their density. But there are exceptions, and exceptions might be added in the future.
The Nexus 10 uses xxhdpi resources when it comes to launcher icons.
The standard quantised DPI for xxhdpi is 480 (which means screens with a DPI somewhere in the range of 400‑560 are probably xxhdpi).
480 dpi is the standard QUANTIZED resolution for xxhdpi, it can vary something less (i.e.: 440 dpi) or more (i.e.: 520 dpi). Scale factor: 3x (3 * mdpi).
Now there's a higher resolution, xxxhdpi (640 dpi). Scale factor 4x (4 * mdpi).
Here's the source reference.
The resolution is 480 dpi, the launcher icon is 144*144px all is scaled 3x respect to mdpi (so called "base", "baseline" or "normal") sizes.
The newer android phones in the market like HTC one, Xperia Z etc have resolutions in the >480dpi range, putting them in the new xxhdpi class as well. The new assets might be useful for them too.
A set of four generalized sizes: small, normal, large, and xlarge
Note: Beginning with Android 3.2 (API level 13), these size groups are deprecated in favor of a new technique for managing screen sizes based on the available screen width. If you're developing for Android 3.2 and greater, see Declaring Tablet Layouts for Android 3.2 for more information.
A set of six generalized densities:
ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi
From developer.android.com : http://developer.android.com/guide/practices/screens_support.html
As per this PPI calculation tool, Google Nexus 10 has a display density of about 300 DPI...
However, Android documentation states that:
ldpi : ~120dpi
mdpi : ~160dpi
hdpi : ~240dpi
xhdpi : ~320dpi
xxhdpi is not specified.
I think we just let Android OS scale up xhdpi resources...