I'm hoping someone could offer some advice. I have developed an application and the UI was pretty complicated, so the standard layout of one folder wasn't sufficient. I had to create a layout folder for each resolution. So the folder layout is as follows:
I had it as:
layout - xxhdpi
layout - xhdpi
etc...
however, after reading an article on the developer website I changed it to the new layout. However, I have been testing on a xxhdpi device (samsung s4) and the layout is perfect but I have received reports from a Sony Z3 user (also xxhpi) that the layout is off. I have seen screen shots of how it looks on this device and it does not look right.
Is there something I'm missing, I thought if I developed a layout for xxhdpi device that it should fit all xxhdpi devices?
Any advice is greatly appreciated
Try this way,hope this will help you to solve your problem.
There mainly three various layout folder are created for multiple device and tab resolution support which are :
layout // for all devices
layout-sw600dp // for 7' tablet
layout-sw720dp // for 10' tablet
But you have to provide various images based on device resolution in drawable which are :
drawable // for common images
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-xxhdpi
Related
I am developing an android application targetting for tablet devices as well as mobile devices
For that I have created my layout files like below
For Placing Screens:
res
layout-small
layout-large
For placing images to fit tablets and mobile devices:
res
drawable-ldpi
drawable-mdpi
For Placing Styles and String xml files:
res
values-small(strings.xml and styles.xml)
values-large(string.xml and styles.xml)
are there any extra folders need to create my application to work for tablet screens as well as mobile screens ?
but when i run the application in nexus7 emulator and nexus one emulator i'm not able to pick properimages and styles from respective xml files
could any one help?
change your layout-large and layout-small folder to
layout-sw720dp to support 10"+ tablets
layout-sw600dp will support 7" tablet.
Most of the Tablets will take image from mdpi folder
It is a complicated question and it depends on your desing and layouts.
In general there are more qualifiers to use.
For density there are also hdpi, xhdpi, xxhdpi. For size - normal, xlarge. For orientation - land, port. And you can combine any of those in one folder. For example res/drawable-mdpi-xlarge or res/layout-hdpi-large and so on. And it all depends on design and how you want to display layout on different screens.
For more information check this docs page http://developer.android.com/guide/practices/screens_support.html
if you are testing your application on an emulator, then check the properties of your emulator like which device you have chosen and its DPI and whether if it is hdpi, mdpi
These properties are there when you choose a device while creating a new emulator.
You cannot put same resolution images in all the drawable folders.
Please look into this. you will get a more clear picture.
Visit :- Support Multiple Screen - Android Developer
ok, I know that most current phones and a 7 inch tablet are both considered "large" as far as screen size according to Android. But there's a big difference between a "large" phone with 480x800 pixels and a "large" 7 inch tablet with 800x1280 pixels. I've created separate layouts for those two sizes, but I still haven't wrapped my head around how to get the phone to see the 480x800 layout and have the tablet see the 800x1280 layout. I've tried tweaking the res folder names to things like layout-large-hdpi and layout-large-mdpi, and also leaving the smaller phone layout as layout and the larger, tablet layout as layout-sw600dp as the Declaring Tablet Layouts for Android 3.2 page suggests, but the problem there becomes Android is still looking in the drawable-hdpi for the phone sized images. So the question then is: How do I declare the phone layouts, and have the phone layout look in the phone drawables folder, and declare the tablet layout and have the layout look in the tablet drawables folder? I'm targeting Android 3.2 with this app that I'm working on.
Sounds like you're on the right track.
Stick your phone layouts just in "layout".
Stick your 10" tablet layouts in "layout-sw720dp"
Then use "layout-sw600dp" for targeting 7-inch devices.
You can use the same suffixes for the drawable folders to, so drawable-sw600dp would be targeted at 7" devices. [Reference].
I have created an android application which works properly for nexus 7.
Inside resources folder, I have created two folders, layout, layout-land for Nexus 7" tab. Everything was working fine till date. Now I want to create a different layout for Samsung Galaxy S3. For that, I have created a folders inside resources with layout-large & layout-large-land. But, here is the problem. Now, for Nexus 7 also, the layout defined in layout-large folder is getting loaded. How to stop that? How can I create different layout for Nexus 7" tab & Galaxy S3 mobile? I have read Supporting Multiple Screens documentation. But I couldn't understand as the screen size for Nexus 7 is 1204 X 800 & screen size for samsung galaxy S3 is 720 X 1280.
How to create different layouts for different devices with different screen resolutions & display sizes? Also, based on device size, I want to change few values in my application. How to do that one?
According to the Supporting Multiple Screens
Qualifiers like small, normal, large and xlarge is for Screen Sizes, which means Nexus 7 will use the resources with large qualifier, if you provide. Therefore before you create the folder with large qualifier, Nexus 7 will load the resources from default layout folder. As for ldpi, mdpi, hdpi and xhdpi is for the screen density.
To solve your problem, you need:
put the layout definitions for Galaxy S3 into layout, and layout-sw600dp for Nexus 7. Please refer to Android Developers Blog: Getting Your App Ready for Jelly Bean and Nexus 7
put the resources (images or drawable stuff) for Galaxy S3 into drawable-xhdpi, and drawable-tvdpi or drawable-hdpi for Nexus 7.
Hope it could help you, and please let me know if you have any other problems :)
Here are some useful references:
What layout is suitable for 720x1280 Android devices?
Screen Width Qualifier
You need one for xlarge and xlarge-land aswell
Or you can do it programmatically by calling:
Display displayparm= activity.getWindowManager().getDefaultDisplay();
int width= displayparm.getWidth();
int Height= displayparm.getHeight();
and choosing layout from this info
you could create the layout by adding new folder under the res folder as layout-xlarge and layout-xlarge-large and u have to update the android manifest file as well to support the for higher resolution
I have developed an application where i support multiple devices with different resolution and densities. with nexus 7 and galaxy s3 also one among them. galaxy s3 and nexus7 will obviously take from the large screen folder if u have layout-large folder in your project. But galaxy s3 falls under large hdpi category and nexus7 falls under large-tvdpi category. so it will be of great use if you have layout-large-hdpi and layout-large-tvdpi for s3 and nexus7 respectively.
I'm developing an application which supports xhdpi devices.
so I created layout-xhdpi and drawable-xhdpi folders to place my drawables
and layouts.but I'm having a problem when supporting different resolution in same density.
as an example samsung galaxy nexus and sharp IS003 detects same layout-xhdpi folder because it has same density but when I run the application in both devices,it displays buttons and
images at different positions because both devices got different resolutions.
am I doing something wrong? should I create different folders for specific resolutions?
I have read supporting multiple screens documentation and tried to declare layouts like res/layout-sw600dp/ but it wont detect for IS03.
Please help me to solve this problem.
why you kept drawable-xhdpi?. there is no android tablet with xhdpi.
check here:
all the 10 inch tablet is only mdpi.
if you check your device density it will show only 160dpi for tablet.
there is xhdpi device for normal phone nexus S ICS.
so move all your drawable-xhdpi to drawable-mdpi and check it will work.
I'm testing my app at Galaxy Tab and Motorola XOOM emulator skins, and I can't understand, why the drawables are taken from the wrong folders. I have drawable-xhdpi folder, where I store big size pictures. However, Tab takes drawables from drawable-hdpi, and XOOM uses the drawable-mdpi folder. So, how do I manage my resources? Thanks in advance.
In addition, it feels like view sizes defined in sp are not ported properly. I have some views which need to be 80sp x 80sp, on phones with mdpi and hdpi screens they look right, but on tablets they look too small. Why can this be?
However, Tab takes drawables from drawable-hdpi, and XOOM uses the drawable-mdpi folder. So, how do I manage my resources?
There is no single "Galaxy Tab" device, so I have no idea which one you are referring to there. The XOOM is an -mdpi device. I would expect that the Galaxy Tab 10.1 would be -mdpi as well. However, in the end, device manufacturers will choose values that they feel deliver the best results for existing applications.
GalaxyTab 7" use "-large-hdpi"; XOOM 10.1" use "-xlarge-mdpi".
check this post for details:
GalaxyTab, Motorola Xoom Screen Desity and Size
I have test with multiple screen resolutions and find out Android use the following qualifier for different screen resolutions:
240x320: -ldpi
320x480: -mdpi
480x800: -hdpi
GalaxyTab7.1 inches: -large
GalaxyTab10.1 inches: -xlarge
Hope this information is useful for you.
Galaxy tab (the old one, running Android 2.x) is indeed not xhdpi. I had success by using the "large" qualifier to identify tablets. Else you can always use an API qualifier such as v11 for Honeycomb only resources.
Rather than using the dpi qualifiers you can use screen size qualifiers instead, theres info here on exactly what tags you can use when selecting which resources to use,
http://developer.android.com/guide/topics/resources/providing-resources.html
It's important to understand the difference between dpi and screen size, dpi tends to be high on phones, like a samsung galaxy s2, but on the big 10 inch tablets it tends to be low(which makes sense if you think about it, the phones squeeze more pixels into a smaller space).