diff --git a/docs/html/guide/guide_toc.cs b/docs/html/guide/guide_toc.cs index 25a317d7bedf6..ebf87027e2859 100644 --- a/docs/html/guide/guide_toc.cs +++ b/docs/html/guide/guide_toc.cs @@ -667,11 +667,14 @@
Figure 1. An application running in compatibility mode +on an Android 3.2 tablet.
+Figure 2. The same application from figure 1, with +compatibility mode disabled.
+Notice: If you've developed an application for a version of +Android lower than Android 3.0, but it does resize properly for larger screens such as tablets, you +should disable screen compatibility mode in order to maintain the best user experience. To learn how +to quickly disable the user option, jump to Disabling Screen Compatibility +Mode.
+ +Screen compatibility mode is an escape hatch for applications that are not properly designed +to resize for larger screens such as tablets. Since Android 1.6, Android has supported a +variety of screen sizes and does most of the work to resize application layouts so that they +properly fit each screen. However, if your application does not successfully follow the guide to +Supporting Multiple Screens, +then it might encounter some rendering issues on larger screens. For applications with this +problem, screen compatibility mode can make the application a little more usable on larger +screens.
+ +There are two versions of screen compatibility mode with slightly different behaviors:
+This was introduced with Android 1.6 to handle apps that were designed only for the +original screen size of 320dp x 480dp. Because there are so few active devices remaining that run +Android 1.5, almost all applications should be developed against Android 1.6 or greater and +should not have version 1 of screen compatibility mode enabled for larger screens. This version +is considered obsolete.
+To disable this version of screen compatibility mode, you simply need to set {@code +android:minSdkVersion} or {@code +android:targetSdkVersion} to {@code "4"} or higher, or set {@code +android:resizeable} to {@code "true"}.
+This was introduced with Android 3.2 to further +assist applications on the latest tablet devices when the applications have not yet +implemented techniques for Supporting Multiple +Screens.
+In general, large screen devices running Android 3.2 or higher allow users to enable +screen compatibility mode when the application does not explicitly declare that it supports +large screens in the manifest file. When this is the case, an icon (with +outward-pointing arrows) appears next to the clock in the system bar, which allows the user to +toggle screen compatibility mode on and off (figure 3). An application can also explicitly +declare that it does not support large screens such that screen compatibility mode +is always enabled and the user cannot disable it. (How to declare your application's +support for large screens is discussed in the following sections.)
+Figure 3. The pop up menu to toggle screen compatibility +mode (currently disabled, so normal resizing occurs).
+ +As a developer, you have control over when your application uses screen compatibility mode. The +following sections describe how you can choose to disable or enable screen compatibility mode for +larger screens when running Android 3.2 or higher.
+ + +If you've developed your application primarily for versions of Android lower than 3.0, but +your application does resize properly for larger screens such as tablets, +you should disable screen compatibility mode in order to maintain the best user +experience. Otherwise, users may enable screen compatibility mode and experience your application in +a less-than-ideal format.
+ +By default, screen compatibility mode for devices running Android 3.2 and higher is offered to +users as an optional feature when one of the following is true:
+ +To completely disable the user option for screen compatibility mode and remove the icon in the +system bar, you can do one of the following:
+ +In your manifest file, add the {@code +<supports-screens>} element and specify the {@code +android:xlargeScreens} attribute to {@code "true"}:
++<supports-screens android:xlargeScreens="true" /> ++
That's it. This declares that your application supports all larger screen sizes, so the +system will always resize your layout to fit the screen. This works regardless of what values +you've set in the {@code <uses-sdk>} +attributes.
+In your manifest's {@code <uses-sdk>} +element, set {@code +android:targetSdkVersion} to {@code "11"} or higher:
++<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="11" /> ++
This declares that your application supports Android 3.0 and, thus, is designed to +work on larger screens such as tablets.
+Caution: When running on Android 3.0 and greater, this also +has the effect of enabling the Holographic theme for you UI, adding the Action Bar to your activities, and removing the +Options Menu button in the system bar.
+If screen compatibility mode is still enabled after you change this, check your manifest's {@code +<supports-screens>} and be sure that there are no attributes set {@code "false"}. The best +practice is to always explicitly declare your support for different screen sizes using the {@code +<supports-screens>} element, so you should use this element anyway.
+For more information about updating your application to target Android 3.0 devices, read Optimizing Apps for Android +3.0.
+When your application is targeting Android 3.2 (API level 13) or higher, you can affect +whether compatibility mode is enabled for certain screens by using the {@code +<supports-screens>} element.
+ +Note: Screen compatibility mode is not a mode in +which you should want your application to run—it causes pixelation and blurring in your UI, +due to zooming. The proper way to make your application work well on large screens is to follow the +guide to Supporting Multiple Screens and +provide alternative layouts for different screen sizes.
+ +By default, when you've set either {@code +android:minSdkVersion} or {@code +android:targetSdkVersion} to {@code "11"} or higher, screen compatibility mode is +not available to users. If either of these are true and your application does not +resize properly for larger screens, you can choose to enable screen compatibility mode in one +of the following ways:
+ ++<supports-screens android:compatibleWidthLimitDp="320" /> ++
This indicates that the maximum "smallest screen width" for which your application is designed +is 320dp. This way, any devices with their smallest side being larger than this value will offer +screen compatibility mode as a user-optional feature.
+Note: Currently, screen compatibility mode only emulates +handset screens with a 320dp width, so screen compatibility mode is not applied to any device if +your value for {@code +android:compatibleWidthLimitDp} is larger than 320.
++<supports-screens android:largestWidthLimitDp="320" /> ++
This works the same as {@code +android:compatibleWidthLimitDp} except it force-enables +screen compatibility mode and does not allow users to disable it.
+This document describes how to get your application out of compatibility
+ This document describes how to get your application out of screen compatibility
mode and instead support multiple screens, but also maintain compatibility with Android 1.5 and
below.
-Figure 1. An application running in compatibility mode -on an extra large screen.
-To allow applications to run on larger screens without stretching the UI, Android provides a -compatibility mode that draws an application's UI in a "postage stamp" window when on larger -screens. That is, the system displays the application at the baseline size (normal) and -density (mdpi), with a black border that fills the rest of the screen.
- -Compatibility mode exists primarily to support application's developed for Android 1.5 (or lower) -when running on larger screens, because multiple screen support was not added until Android 1.6, -older applications were not designed to support different screen configurations.
- -As such, if you've set your {@code -android:minSdkVersion} to {@code "3"} or lower and have not set the {@code -android:targetSdkVersion} to {@code "4"} or higher, then compatibility mode is enabled and -the system will not scale your application, because your application implicitly declares that it -only supports the baseline screen configuration (normal screen size and medium density).
- -To disable compatibility mode, set either {@code -android:minSdkVersion} or {@code -android:targetSdkVersion} to {@code "4"} or higher. For more information, see the previous -section about Adding Multiple Screens Support.
- -You can also affect whether compatibility mode is enabled by using the {@code -<supports-screens>} element (you can enable it by setting {@code android:resizeable} or -specific screen sizes to {@code "false"}). However, you should not explicitly enable compatibility -mode for your application, but should instead apply the necessary techniques to supporting multiple screens and allow your -application to properly fit the screen on all screen sizes.
diff --git a/docs/html/guide/practices/screens_support.jd b/docs/html/guide/practices/screens_support.jd index 14de152080add..c5b9a4b658f00 100644 --- a/docs/html/guide/practices/screens_support.jd +++ b/docs/html/guide/practices/screens_support.jd @@ -25,6 +25,13 @@ page.title=Supporting Multiple ScreensAlthough the system performs sufficient scaling and resizing to make your application work on +
Although the system performs scaling and resizing to make your application work on different screens, you should make the effort to optimize your application for different screen sizes and densities. In doing so, you maximize the user experience for all devices and your users believe that your application was actually designed for their devices—rather than -simply stretched to fit their devices.
+simply stretched to fit the screen on their devices.By following the practices described in this document, you can create an application that displays properly and provides an optimized user experience on all supported screen configurations, @@ -74,7 +81,14 @@ using a single {@code .apk} file.
Note: The information in this document assumes that your application is designed for Android 1.6 (API Level 4) or higher. If your application supports Android 1.5 or lower, please first read Strategies for Android 1.5.
+href="{@docRoot}guide/practices/screens-support-1.5.html">Strategies for Android 1.5. +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.
+The generalized sizes and densities are arranged around a @@ -154,7 +175,7 @@ baseline is based upon the screen configuration for the first Android-powered de G1, which has an HVGA screen (until Android 1.6, this was the only screen configuration that Android supported).
-Each generalized size or density spans a range of actual screen sizes or density. For example, +
Each generalized size and density spans a range of actual screen sizes and densities. For example, two devices that both report a screen size of normal might have actual screen sizes and aspect ratios that are slightly different when measured by hand. Similarly, two devices that report a screen density of hdpi might have real pixel densities that are slightly different. @@ -168,11 +189,30 @@ and density groups.
Illustration of how Android roughly maps actual sizes and densities to generalized sizes and densities (figures are not exact). +As you design your UI for different screen sizes, you'll discover that each design requires a +minimum amount of space. So, each generalized screen size above has an associated minimum +resolution that's defined by the system. These minimum sizes are in "dp" units—the same units +you should use when defining your layouts—which allows the system to avoid worrying about +changes in screen density.
+ +Note: These minimum screen sizes were not as well defined prior to +Android 3.0, so you may encounter some devices that are mis-classified between normal and large. +These are also based on the physical resolution of the screen, so may vary across devices—for +example a 1024x720 tablet with a system bar actually has a bit less space available to the +application due to it being used by the system bar.
+To optimize your application's UI for the different screen sizes and densities, you can provide alternative resources for any of the generalized sizes and densities. Typically, you should provide alternative layouts for some of the different screen sizes and alternative bitmap images for -different screen densities. At runtime, the system uses the appropriate size or density resources +different screen densities. At runtime, the system uses the appropriate resources for your application, based on the generalized size or density of the current device screen.
You do not need to provide alternative resources for every combination of screen size and @@ -221,7 +261,7 @@ density, if necessary
In figure 2, the text view and bitmap drawable have dimensions specified in pixels ({@code px} -units), so the elements are physically larger on a low density screen and smaller on a high density +units), so the views are physically larger on a low density screen and smaller on a high density screen. This is because although the actual screen sizes may be the same, the high density screen has more pixels per inch (the same amount of pixels fit in a smaller area). In figure 3, the layout dimensions are specified in density-independent pixels ({@code dp} units). Because the baseline for @@ -255,6 +295,18 @@ for the screen density, as appropriate. To more gracefully handle different scre however, you should also:
By declaring which screen sizes your application supports, you can ensure that only +devices with the screens you support can download your application. Declaring support for +different screen sizes can also affect how the system draws your application on larger +screens—specifically, whether your application runs in screen compatibility mode.
+To declare the screen sizes your application supports, you should include the +{@code +<supports-screens>} element in your manifest file.
+By default, Android resizes your application layout to fit the current device screen. In most cases, this works fine. In other cases, your UI might not look as good and might need adjustments @@ -264,6 +316,12 @@ you might need to adjust sizes so that everything can fit on the screen.
The configuration qualifiers you can use to provide size-specific resources are
small, normal, large, and xlarge. For
example, layouts for an extra large screen should go in {@code layout-xlarge/}.
Beginning with Android 3.2 (API level 13), the above size groups are deprecated and you +should instead use the {@code sw<N>dp} configuration qualifier to define the smallest +available width required by your layout resources. For example, if your multi-pane tablet layout +requires at least 600dp of screen width, you should place it in {@code layout-sw600dp/}. Using the +new techniques for declaring layout resources is discussed further in the section about Declaring Tablet Layouts for Android 3.2.
Note: If you're developing your application for Android 3.2 and +higher, see the section about Declaring Tablet Layouts for Android 3.2 for information about +new configuration qualifiers that you should use when declaring layout resources for specific +screen sizes (instead of using the size qualifiers in table 1).
+For more information about how these qualifiers roughly correspond to real screen sizes and densities, see Range of Screens Supported, earlier in this document.
@@ -554,6 +618,267 @@ icons, status bar icons, tab icons, and more. + +For the first generation of tablets running Android 3.0, the proper way to declare tablet +layouts was to put them in a directory with the {@code xlarge} configuration qualifier (for example, + {@code res/layout-xlarge/}). In order to accommodate other types of tablets and screen +sizes—in particular, 7" tablets—Android 3.2 introduces a new way to specify resources +for more discrete screen sizes. The new technique is based on the amount of space your layout needs +(such as 600dp of width), rather than trying to make your layout fit generalized size groups (such +as large or xlarge).
+ +The reason designing for 7" tablets is tricky when using the generalized size groups is +that a 7" tablet is technically in the same group as a 5" handset (the large group). While +these two devices are seemingly close to each other in size, the amount of space for an +application's UI is significantly different, as is the style of user interaction. Thus, a 7" and 5" +screen should not always use the same layout. To make it possible for these two kinds of screens to +offer different layouts, Android now allows you to specify your layout resources based on the width +and/or height that's actually available for your application's layout, specified in dp units.
+ +For example, after you've designed the layout you want to use for tablet-style devices, you might +determine that the layout stops working well when the screen is less than 600dp wide. This threshold +thus becomes the minimum size that you require for your tablet layout. As +such, you can now specify that these layout resources should be used only when there is at least +600dp of width available for your application's UI.
+ +You should either pick a width and design to it as your minimum size, or test what is the +smallest width your layout supports once it's complete.
+ + +The numbers describing the width and height available for your layout are all in dp +units—remember that your layout dimensions should always be defined using dp units, +because what you care about is the amount of space available after the system accounts for screen +density (as opposed to using raw pixel numbers). The different resource configurations that you can +specify based on the space available for your layout are summarized in table 2. When building an +application for Android 3.2 and higher, you should use these new qualifiers instead of those for the +traditional screen size groups (small, normal, large, and xlarge).
+ +Note: The sizes that you specify using these qualifiers are +not the actual screen sizes. Rather, the sizes are for the width or height in dp +units that are available to your activity's window. The Android system +might use some of the screen for system UI (such as the system bar at the bottom of the screen or +the status bar at the top), so some of the screen might not be available for your layout. Thus, the +sizes you declare should be specifically about the sizes needed by your activity—the system +accounts for any space used by system UI when declaring how much space it provides for your layout. +Also beware that the Action Bar is considered +a part of your application's window space, although your layout does not declare it, so it reduces +the space available for your layout and you must account for it in your design.
+ +Table 2. New configuration qualifers for screen size +(introduced in Android 3.2).
+| Screen configuration | Qualifier values | Description |
|---|---|---|
| Smallest available width | +sw<N>dp+ Examples: + sw600dp+ sw720dp+ |
+
+ Specifies the "smallest width" in dp units that must be available to your
+application in order for the resources to be used—defined by the This is the most important size configuration value, because it replaces the old screen size +buckets with a discrete number that specifies the effective size available for your UI. This number +is based on width because that is most often the driving factor in designing a layout. A UI will +often scroll vertically, but have fairly hard constraints on the minimum space it needs +horizontally. The available width is also the key factor in determining whether to use a one-pane +layout for handsets or multi-pane layout for tablets. + |
+
| Available width | +w<N>dp+ Examples: + w720dp+ w1024dp+ |
+
+ Specifies a minimum available width in dp units at which the resources should be
+used—defined by the This is often useful to determine whether to use a multi-pane layout, because even on a +tablet device, you often won't want the same multi-pane layout for portrait orientation as you do +for landscape. Thus, you can use this to specify the minimum width required for the layout, instead +of using both the screen size and orientation qualifiers together. + |
+
| Available height | +h<N>dp+ Examples: + h720dp+ h1024dp+ etc. + |
+
+ Specifies a minimum screen height in dp units at which the resources should be
+used—defined by the Using this to define the
+height required by your layout is useful in the same way as |
+
While using these qualifiers might seem more complicated than using screen size groups, it should +actually be simpler once you determine the requirements for your UI. When you design your UI, +the main thing you probably care about is the actual size at which your application switches between +a handset-style UI and a tablet-style UI that uses multiple panes. The exact point of this switch +will depend on your particular design—maybe you need a 720dp width for your tablet layout, +maybe 600dp is enough, or 480dp, or some number between these. Using these qualifiers in table 2, +you are in control of the precise size at which your layout changes.
+ + +To help you target some of your designs for different types of devices, here are some +numbers for typical screen widths:
+ +Using the size qualifiers from table 2, your application can switch between your different layout +resources for handsets and tablets using any number you want for width and/or height. For example, +if 600dp is the smallest available width supported by your tablet layout, you can provide these two +sets of layouts:
+ ++res/layout/main_activity.xml # For handsets +res/layout-sw600dp/main_activity.xml # For tablets ++ +
In this case, the smallest width of the available screen space must be 600dp in order for the +tablet layout to be applied.
+ +For other cases in which you want to further customize your UI to differentiate between sizes +such as 7” and 10” tablets, you can define additional smallest width layouts:
+ ++res/layout/main_activity.xml # For handsets (smaller than 600dp available width) +res/layout-sw600dp/main_activity.xml # For 7” tablets (600dp wide and bigger) +res/layout-sw720dp/main_activity.xml # For 10” tablets (720dp wide and bigger) ++ +
Notice that the previous two sets of example resources use the "smallest width" qualifer, {@code +sw<N>dp}, which specifies the smallest of the screen's two sides, regardless of the +device's current orientation. Thus, using {@code sw<N>dp} is a simple way to specify the +overall screen size available for your layout by ignoring the screen's orientation.
+ +However, in some cases, what might be +important for your layout is exactly how much width or height is currently available. For +example, if you have a two-pane layout with two fragments side by side, you might want to use it +whenever the screen provides at least 600dp of width, whether the device is in landscape or +portrait orientation. In this case, your resources might look like this:
+ ++res/layout/main_activity.xml # For handsets (smaller than 600dp available width) +res/layout-w600dp/main_activity.xml # Multi-pane (any screen with 600dp available width or more) ++ +
Notice that the second set is using the "available width" qualifier, {@code w<N>dp}. This +way, one device may actually use both layouts, depending on the orientation of the screen (if +the available width is at least 600dp in one orientation and less than 600dp in the other +orientation).
+ +If the available height is a concern for you, then you can do the same using the {@code +h<N>dp} qualifier. Or, even combine the {@code w<N>dp} and {@code h<N>dp} +qualifiers if you need to be really specific.
+ + +Once you've implemented your layouts for different screen sizes, it's equally important that you +declare in your manifest file which screens your application supports.
+ +Along with the new configuration qualifiers for screen size, Android 3.2 introduces new +attributes for the <supports-screens> +manifest element:
+ +Note: If your application's layout properly resizes for large +screens, you do not need to use this attribute. We recommend that you avoid using this +attribute and instead ensure your layout resizes for larger screens by following the +recommendations in this document.
Note: If your application's layout properly resizes for large +screens, you do not need to use this attribute. We recommend that you avoid using this +attribute and instead ensure your layout resizes for larger screens by following the +recommendations in this document.
Caution: When developing for Android 3.2 and higher, you +should not use the older screen size attributes in combination with the attributes +listed above. Using both the new attributes and the older size attributes might cause +unexpected behavior.
+ +For more information about each of these attributes, follow the respective links above.
+ + + +The objective of supporting multiple screens is to create an application that can function @@ -875,7 +1200,7 @@ SDK Manager.exe} from your Android SDK directory (on Windows only) or execute {@ the {@code <sdk>/tools/} directory (on all platforms). Figure 6 shows the Android SDK and AVD Manager with a selection of AVDs, for testing various screen configurations.
-Table 2 shows the various emulator skins that are available in the Android SDK, which you can use +
Table 3 shows the various emulator skins that are available in the Android SDK, which you can use to emulate some of the most common screen configurations.
For more information about creating and using AVDs to test your application, see Managing AVDs with Manager.
-Table 2. Various screen +
Table 3. Various screen configurations available from emulator skins in the Android SDK (indicated in bold) and other representative resolutions.
diff --git a/docs/html/guide/topics/manifest/supports-screens-element.jd b/docs/html/guide/topics/manifest/supports-screens-element.jd index 605a2bb482e14..a659678112885 100644 --- a/docs/html/guide/topics/manifest/supports-screens-element.jd +++ b/docs/html/guide/topics/manifest/supports-screens-element.jd @@ -8,15 +8,15 @@ parent.link=manifest-intro.html-<supports-screens android:requiresSmallestWidthDp="integer" - android:compatibleWidthLimitDp="integer" - android:largestWidthLimitDp="integer" - android:resizeable=["true"| "false"] +<supports-screens android:resizeable=["true"| "false"] android:smallScreens=["true" | "false"] android:normalScreens=["true" | "false"] android:largeScreens=["true" | "false"] android:xlargeScreens=["true" | "false"] - android:anyDensity=["true" | "false"] /> + android:anyDensity=["true" | "false"] + android:requiresSmallestWidthDp="integer" + android:compatibleWidthLimitDp="integer" + android:largestWidthLimitDp="integer"/>
<manifest>An application "supports" a given screen size if it resizes properly to fill the entire screen. -By default, the system resizes your application UI to fill the screen if you have set -either {@code -minSdkVersion} or {@code -targetSdkVersion} to {@code "4"} or higher. Normal resizing works well for most applications and -you don't have to do any extra work to make your application work on screens larger than a -handset device.
- -In addition to allowing the system to resize your application to fit the current screen, you can -optimize your UI for different screen sizes by providing alternative -layout resources for different sizes. For instance, you might want to modify the layout -of an activity when it is on a tablet or similar device that has an xlarge screen.
+layout resources. For instance, you might want to modify the layout of an activity +when it is on a tablet compared to when running on a handset device. -However, if your application does not work well when resized to fit different screen sizes, -you can use the attributes of the {@code <supports-screens>} element to control whether -your application should be distributed to smaller screens or have its UI scaled up to fit larger -screens using the system's screen compatibility mode. When you have not designed for larger screen -sizes and the normal resizing does not achieve the appropriate results, screen compatibility -mode will scale your UI by emulating a normal size screen and then zooming in on it so -that it fills the entire screen—thus achieving the same layout as a normal handset device on -the large screen (but this usually causes pixelation and blurring of your UI).
+However, if your application does not work well when resized to fit different screen sizes, you +can use the attributes of the {@code <supports-screens>} element to control whether your +application should be distributed to smaller screens or have its UI scaled up ("zoomed") to fit +larger screens using the system's screen compatibility mode. When you +have not designed for larger screen sizes and the normal resizing does not achieve the appropriate +results, screen compatibility mode will scale your UI by emulating a normal size +screen and medium density, then zooming in so that it fills the entire screen. Beware that this +causes pixelation and blurring of your UI, so it's better if you optimize your UI for large +screens.
+ +Note: Android 3.2 introduces new attributes: {@code +android:requiresSmallestWidthDp}, {@code android:compatibleWidthLimitDp}, and {@code +android:largestWidthLimitDp}. If you're developing your application for Android 3.2 and higher, +you should use these attributes to declare your screen size support, instead of the attributes +based on generalized screen sizes.
For more information about how to properly support different screen sizes so that you can avoid -using screen compatibility mode, read +using screen compatibility mode with your application, read Supporting Multiple Screens.
@@ -62,12 +63,87 @@ using screen compatibility mode, readThis attribute is deprecated. It was introduced to help applications +transition from Android 1.5 to 1.6, when support for multiple screens was first introduced. You +should not use it.
+The default value for this actually varies between some versions, so it's better if +you explicitly declare this attribute at all times. Beware that setting it "false" will +generally enable screen +compatibility mode.
+The default value for this actually varies between some versions, so it's better if +you explicitly declare this attribute at all times. Beware that setting it "false" will +generally enable screen +compatibility mode.
+This attribute was introduced in API level 9.
+For applications that support Android 1.6 (API level 4) and higher, this is "true" +by default and you should not set it "false" unless you're absolutely certain that +it's necessary for your application to work. The only time it might be necessary to disable this +is if your app directly manipulates bitmaps (see the Supporting Multiple +Screens document for more information).
+Caution: The Android system does not pay attention to this +attribute, so it does not affect how your application behaves at runtime. Instead, it is used +to enable filtering for your application on services such as Android Market. However, +Android Market currently does not support this attribute (on Android 3.2), so you +should continue using the other size attributes if your application does not support +small screens.
+ +This attribute was introduced in API level 13.
If your application is compatible with all screen sizes and its layout properly resizes, you do not need to use this attribute.
-Note: Currently, screen compatibility mode only emulates handset +
Note: Currently, screen compatibility mode emulates only handset screens with a 320dp width, so screen compatibility mode is not applied if your value for {@code android:compatibleWidthLimitDp} is larger than 320.
This attribute was introduced in API level 13.
If your application is compatible with all screen sizes and its layout properly resizes, you do not need to use this attribute. Otherwise, you should first consider using the {@code android:compatibleWidthLimitDp} attribute. Yo {@code android:largestWidthLimitDp} attribute only when your application is functionally broken when resized for larger screens and screen compatibility mode is the only way that users should use your application.
-Note: Currently, screen compatibility mode only emulates handset +
Note: Currently, screen compatibility mode emulates only handset screens with a 320dp width, so screen compatibility mode is not applied if your value for {@code android:largestWidthLimitDp} is larger than 320.
This attribute was introduced in API level 13.
To provide the best experience on all screen sizes, you should allow resizing and, if your -application does not work well on larger screens, follow the guide to Supporting Multiple Screens to enable -additional screen support.
-This attribute is deprecated as of API level 13.
-This attribute is deprecated as of API level 13.
-This attribute is deprecated as of API level 13.
-This attribute is deprecated as of API level 13.
-This attribute was introduced in API level 9.
-This attribute is deprecated as of API level 13.
-Based on the "standard" device screen density (medium dpi), the Android framework will scale -down application assets by a factor of 0.75 (low dpi screens) or scale them up by a factor of 1.5 -(high dpi screens), when you don't provide alternative resources for a specifc screen density. The -screen density is expressed as dots-per-inch (dpi).
-This attribute is deprecated as of API level 13.
-sw<N>dpsw320dpw<N>dpw720dpSpecifies a minimum screen width, in {@code dp} units at which the resource +
Specifies a minimum available screen width, in {@code dp} units at which the resource
should be used—defined by the <N> value. This
configuration value will change when the orientation
changes between landscape and portrait to match the current actual width.
h<N>dph720dpSpecifies a minimum screen height, in "dp" units at which the resource +
Specifies a minimum available screen height, in "dp" units at which the resource
should be used—defined by the <N> value. This
configuration value will change when the orientation
changes between landscape and portrait to match the current actual height.