How to create different layout for Galaxy S3 and Nexus 7?
Asked Answered
C

4

5

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?

Cristionna answered 10/10, 2012 at 9:30 Comment(1)
Yes this is the main disadvantages of Android. Too many vendors doing their own sizes. You might want to have a look on my previous similar questions about multiple screens on #11584607 or #11008699 or https://mcmap.net/q/2037525/-how-android-manages-screenMischiefmaker
R
10

According to the Supporting Multiple Screensenter image description here

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:

  1. 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

  2. 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

Reyesreykjavik answered 10/10, 2012 at 10:28 Comment(5)
Even after putting my layout definations for s3 in layout, layout-large is getting loadedCristionna
Then please try put definitions for s3 in layout, and put those for Nexus in layout-sw600dp according to Android Developers Blog. Meanwhile I also updated my answer to include this comment.Reyesreykjavik
No. thats ok. It is working fine now when I have implemented your previous comment. Thats why I have deleted that comment. My mistake was, emulator configuration for s3 was not correct. thats why. Anyways, thanks for your effort. +25Cristionna
Glad 2 hear that u've solved this. I've added more reference to my answer to help others.Reyesreykjavik
layout-sw360dp is a good option if you want a Galaxy S3 specific layout that's different from a default layout for smaller, more normally sized phones. layout-sw600dp is definitely what you want for the Nexus 7.Hottempered
C
0

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

Cryohydrate answered 10/10, 2012 at 9:44 Comment(1)
@Andres.. I dint get you here. for which one should I use xlarge. I have created such layout. Even then layout-large is getting loaded for both S3 & Nexus 7Cristionna
A
0

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

Anthia answered 6/5, 2013 at 9:59 Comment(0)
M
0

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.

Megrim answered 1/9, 2013 at 9:18 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.