I am testing an application in two mobiles one is ASUS ZENPHONE 5Z another one is ONEPLUS 6T,Both of the device screen densities are same and both of them have falls in XXHDPI but where as the layout appears different in both the phone as shown below.
ASUS 5Z
ONEPLUS 6T
I have checked the mobile settings they are about same, so what is this all about and how do i fix it?
Related
I have multiple layouts to support different screen sizes:
layout-sw320dp (smallest phones, 4.0" and smaller)
layout-sw360dp (approximately 4.7-5")
layout-sw400dp (most phones right now, 5-6")
Note: This values are from Design tab in Layout Editor from Android Studio.
(Example for layout-sw320dp)
First layout (layout-sw320dp) for small screen sizes was designed in Android Emulator on Nexus S
Second layout (layout-sw360dp) was designed on a real device Samsung Galaxy A3 2017 - 4.7''
Both of them works! Every layout is called according to phone screen size: layout-sw320dp on Nexus S which is 4.0' and layout-sw360dp on my phone which is 4.7".
My problem arises with layout-sw400dp which should be called on devices with 5" and bigger. For this layout I have another real phone Samsung Galaxy S7 edge - 5.5" but on this phone, the app is calling layout-sw360dp instead of layout-sw400dp. This occurs only on my real phone. In Android Emulator on Pixel XL (which has the exact same specs of screen as S7 edge - 5.5" and the same resolution) the app call the right layout.
Update: Example for layout-sw400dp
My questions are: Why is this happening? How can I solve this that phones with 5" and bigger call other layout than layout-sw360dp?
Samsung S7 Edge is a 5.5 inch phone and it falls under sw360dp category
That means, everyting is working as it should be
link https://material.io/tools/devices/
The point is, DP doesn't depend solely on screen side, it depends of the sreen size and how many pixel the display actually has.
Designing for multiple phone screen sizes
There are out there thousands of android devices with different screen sizes, resolutions and densities. So what should you do when designing layouts that should supports almost every size of Normal android device? (Samsung Galaxy J5, Nexus 5, etc (Not tablets))
How to support different size of phone screens? (Samsung Galaxy S6's screen size is 5.1" screen size, 1440x2560p screen resolution) and all the other phone screen sizes.
Because when you make an layout with 2 ImageViews and a single TextView, and then review it on example. Samsung Galaxy J5, it looks fine. Then you review/download it on another phone that is example. Samsung Galaxy S5, some of the things are in the wrong places and you definitely think that the TextView should be 56dps on the left...
How to do another layout for another screen size?
*Note: I only asked about How to support multiple Normal Phone sizes? Not about "How to support all the devices (TABLETS, PHONES, WEARS)?"
I have written an android app and have tested it for all kind of screen sizes and densities (Using the android emulator). I have also tested the layout for relatively small screen sizes, for example the WQVGA device (3,3", ldpi, 240 x 400)) and it's working fine. I have two physical devices (sony z3 compact with 4,6" and sony xperia v (4,3"), which display the layout in the correct way. Lately a friend came over and i wanted to show him the app on his smartphone (sony galaxy s2 plus (4,3")) and the layout was totally destroyed, meaning that the display seemed to small. TextViews and buttons weren't displayed properly.
I don't really understand this. All those devices are in the category "medium". And the screen size of the S2 Plus is equal to the one of the Sony Xperia V (and even a lot bigger than the WQVGA). So why does this device display my layout properly. I want to use the old size-qualifiers (small, medium, large, xlarge), because i target api-level 11.
How can i solve this issue? I don't want to redesign my layout for medium-devices, since it really looks the way i want it to look on all the devices, which work properly.
Actually you are confused between resolution & screen size.Galaxy S2 Plus & Sony Xperia V have same screen size but their resolution are different 480*800 pixels & 720*1280 pixels respectively.So both device are under different resolution so your application supports xhdpi & ldpi but doesn't in
hdpi.You should provide support for hdpi.For more clarification you should provide code.
For more reference refer:
1.http://android-developers.blogspot.in/2009/10/support-for-additional-screen.html
2.http://developer.android.com/guide/topics/manifest/compatible-screens-element.html
3.http://developer.android.com/guide/practices/screens_support.html
I am developing an Android application intended for high end handset devices like Galaxy S3, Galaxy Nexus, Xperia V etc. Now I want to know which layout is suitable for devices with resolution 720x1280, density xhdpi and size normal.
I already tried layout-xhdpi-1280x720 and Galaxy S3 device is loading screens from here, but not Galaxy Nexus.
I have tried layout-sw260dp but Galaxy Nexus emulator do not loading screens. Also Nexus7 is emulator is loading from here. I don't want any tablet to run my app.
What can be the problem ? Does Device definition of Galaxy Nexus causes the problem ?
I am using Android SDK 4.2.
Now I want to know which layout is suitable for devices with resolution 720x1280, density xhdpi and size normal.
res/layout/ works nicely. If you are also supporting -small screen devices, have an additional res/layout-small/ for those. You may or may not also wish -land variants (e.g., res/layout-land/) if you want different layouts for different screen orientations.
I already tried layout-xhdpi-1280x720 and Galaxy S3 device is loading screens from here, but not Galaxy Nexus.
That approach has been deprecated for years.
I don't want any tablet to run my app.
Then specify the appropriate <compatible-screens> element in your manifest, to state that you only support small and normal screens, not large and xlarge. This has nothing to do with your choice of layout resource directory.
I have been laying out some Android xml screens on a Galaxy Samsung Tab 7" GT-P3110 which has a screen resolution of 1024 x 600. It is running Android ver 4.0.3
My customer however is running a Galaxy Samsung Tab 7" SPH-P100 with Android 2.2 with the same screen size and resolution.
When the customer is viewing the screens I have created they are being cut-off width ways.
Both devices appear to have the same size and resolution and I'm trying to work out why there are differences in layout ?
Galaxy Samsung Tab GT-P3110
http://www.samsung.com/uk/consumer/mobile-devices/tablets/tablets/GT-P3110TSABTU-spec
Galaxy Samsung Tab SPH-P100
http://www.samsung.com/us/mobile/galaxy-tab/SPH-P100ZKASPR
I've done some digging into this...
Here on SO, there are a few comments like "device manufacturers can select the density of their device to achieve a desired UI -- for example the Samsung Tab uses a density that is a fair amount larger than the actual DPI, resulting in an overall larger UI." from
basics of device-independent-pixels, and this is further reported on other sites...
One user has dug more deeply into this - and discovered that the original Galaxy Tab 7 reported that the Galaxy Tab did not obey the developer documents:
160dp is always one inch regardless of the screen density
but instead reports its display as hdpi instead of mdpi. The explanation on the Google blog for this is:
In this context, the Samsung has another little surprise: If you do the arithmetic, its screen has 170 DPI, which is far from the densest among Android devices. Still, it declares itself as “hdpi” (and as having a “large” screen size). The reason is simple: It looks better that way.
For more info on this, see:
Understanding Samsung Galaxy Tab screen density
and http://realmike.org/blog/2010/12/21/multiple-screen-sizes-with-processing-for-android/
and http://android-developers.blogspot.co.uk/2010/09/screen-geometry-fun.html
With this in mind... the only remaining piece of the puzzle is what's happened in the Galaxy Tab 2... well, my guess is that Samsung have decided in ICS to change the Galaxy Tab 2 back so that it "correctly" reports itself as a medium density rather than high density device...
... and that's why your Galaxy Tab 2 displays content so differently to your customer's Galaxy Tab 1