为不同的屏幕设置不同的布局

时间:2014-03-19 13:31:22

标签: android xml android-layout screen multiscreen

在我的应用程序中,我想为不同的移动设备设置不同的字体大小和填充。我在Android文档中使用此方法解释。

res/layout/my_layout.xml             // layout for normal screen size ("default")
res/layout-small/my_layout.xml       // layout for small screen size
res/layout-large/my_layout.xml       // layout for large screen size
res/layout-xlarge/my_layout.xml      // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation

我使用galaxy s2和htc进行测试, 似乎无论我创建它的文件夹,总是使用res / layout /

中的xml

我在清单

中添加了这个
<supports-screens android:smallScreens="true" 
      android:normalScreens="true" 
      android:largeScreens="true"
      android:xlargeScreens="true"
      android:anyDensity="true" />

我怎样才能确保galaxy和htc会使用不同的xml?而是他们都使用默认布局的当前情况。

3 个答案:

答案 0 :(得分:1)

Galaxy S2使用文件夹:

layout-normal-hdpi

HTC One使用文件夹:

layout-normal-xxhdpi

清单:

<supports-screens android:smallScreens="true" 
      android:normalScreens="true" 
      android:largeScreens="true"
      android:xlargeScreens="true"
      android:anyDensity="true" />

答案 1 :(得分:0)

首先,您将此代码粘贴到mainfest文件中

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="false"
    android:xlargeScreens="true" 
   />

<compatible-screens>
    <screen
        android:screenDensity="ldpi"
        android:screenSize="small" />
    <screen
        android:screenDensity="mdpi"
        android:screenSize="normal" />
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="large" />
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="xlarge" />        
</compatible-screens>

然后删除res文件夹中的布局文件,因为它将自动采用所有..So

的默认屏幕

那么您可以像这样指定所有屏幕尺寸的值......

      res/values-small/my_layoutvalues.xml       // layout for small screen size
      res/values-large/my_layoutvalues.xml       // layout for large screen size
      res/values-xlarge/my_layoutvalues.xml      // layout for extra large screen size
      res/values-xlarge-land/my_layoutvalues.xml //layout for extra large in landscape orientation

如果您需要任何澄清评论,那就是全部......

答案 2 :(得分:0)

适用于最高5英尺1英寸屏幕的手机

use layout folder only
Note: use linear layout as parent layout and use weights as weight divide each screen 
in equal parts

用于7“平板电脑

layout-sw600dp-port //for portrait mode
layout-sw600dp-land //for landscape mode

适用于10“平板电脑

layout-sw720dp-port //for portrait mode
layout-sw720dp-land //for landscape mode