如何在android中实现多个屏幕大小的配置限定符

时间:2012-03-09 08:45:24

标签: android

我正在设计支持多种屏幕尺寸的应用程序,使用像margin_top等在3.2中。我必须为值文件夹创建哪些文件夹?我在哪里指定dip?谁能告诉我怎么做?如果我给了value-11文件夹和加载布局。我收到了编译错误no resource found error,但我在那里有布局。

由于

3 个答案:

答案 0 :(得分:1)

有多种方法可以切换布局。以下是前两位:

假设在您的代码中,您将要膨胀R.layout.my_layout

  • 通过向布局添加选择器直接切换

实施布局:

res/layout/my_layout.xml
res/layout-land/my_layout.xml
res/layout-w600dp/my_layout.xml
  • 通过向值
  • 添加选择器来间接切换

实施布局:

res/layout/my_layout_narrow.xml
res/layout/my_layout_wide.xml

实施价值观:

res/values/layouts.xml
    <resources>
        <item name="my_layout" type="layout">@layout/my_layout_narrow</item>
    </resources>

res/values-land/layouts.xml
    <resources>
        <item name="my_layout" type="layout">@layout/my_layout_wide</item>
    </resources>

res/values-w400dp/layouts.xml
    <resources>
        <item name="my_layout" type="layout">@layout/my_layout_narrow</item>
    </resources>

res/values-w800dp/layouts.xml
    <resources>
        <item name="my_layout" type="layout">@layout/my_layout_wide</item>
    </resources>

答案 1 :(得分:0)

Use dp instead of dip and put the below lines in The Android Manifest.xml file above <application/> tag & put your all images in simply drawable folder .Doing all these changes your app support all screen sizes.`<supports-screens 
          android:smallScreens="true" 
          android:normalScreens="true"
          android:largeScreens="true" 
          android:anyDensity="true"  >
          </supports-screens>

答案 2 :(得分:0)

请参阅指南主题Supporting Multiple Screens > Declaring Tablet Layouts for Android 3.2。您可以为可用的宽度和高度或最小宽度指定资源文件夹。例如,你可能有

  • res/values-sw600dp,当您的应用可用的最小屏幕维度至少为600dp时,您可以定义margin_top
  • res/values-w1024dp,当应用程序可用的屏幕宽度至少为1024dp时,您将定义margin_top