0

在我的应用程序中,我想为不同的移动设备设置不同的字体大小和填充。我在 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?取而代之的是他们都使用默认布局的当前情况。

4

3 回答 3

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" />
于 2014-03-23T09:58:37.293 回答
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
于 2014-03-19T13:45:55.560 回答
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 文件夹中的布局文件,因为它会自动为所有的默认屏幕..所以

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

      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

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

于 2014-03-19T13:38:45.797 回答