为多屏幕支持实现多个布局不起作用

时间:2015-08-10 08:01:51

标签: android android-layout

我已经阅读了很多关于支持多个设备的内容。现在我已经在我的应用程序中实现了它,我已经制作了如下所示的文件夹:

  1. 布局(默认文件夹)
  2. 布局大
  3. 布局正常
  4. 布局小
  5. 布局XLARGE
  6. 布局xxlarge
  7. 并在xml文件中声明了这个

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

    但是它无法正常工作,我的所有设备都从正常的布局文件夹中挑选布局应该是什么问题?

    还告诉我应该怎样做才能支持xxxhdpi设备?

2 个答案:

答案 0 :(得分:2)

根据本文档Supporting Multiple Screens中的说明,旧组已弃用(小组,普通组,大组和xlarge),这就是我们必须迁移到Android 3.2中定义的新技术的原因。 / p>

  

注意:从Android 3.2(API级别13)开始,这些大小的组是   不推荐使用基于管理屏幕尺寸的新技术   在可用的屏幕宽度上。如果你正在为Android 3.2开发   更多,请参阅为Android 3.2声明平板电脑布局   信息。

旧路分类:

xlarge screens are at least 960dp x 720dp
large screens are at least 640dp x 480dp
normal screens are at least 470dp x 320dp
small screens are at least 426dp x 320dp

新方法:屏幕尺寸的新配置限定符(在Android 3.2中引入)。

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7” tablet (600x1024 mdpi).
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).

res/layout-sw320dp/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)

请参阅Supporting Multiple Screens文档以获取更多支持!

所以这里也有一个奇怪的问题,我们有控制不同的移动设备(不是平板电脑),即我们有3.5'5',5.5'等设备。

因此,为了实现多个移动屏幕支持(准确),您可以在应用中创建不同的值文件夹,如下所示

enter image description here

然后根据需要在dimens.xml文件中声明所有维度值,并使用维度文件中的值(这意味着不是xml文件中的硬编码值..每个值都应来自维度文件,如@ dimen /) 例如,在主屏幕中,左边的填充为5dp,文本大小为24sp,还有一些其他尺寸值。

因此,您需要在您的values文件夹中创建一个dimens.xml文件,如下所示。

<dimen name="button_height">120dp</dimen>
<dimen name="buttonTextSize">15dp</dimen>
<dimen name="button_margin">10dp</dimen>
<dimen name="buttonHeight_normal">37dp</dimen>
<dimen name="left_padding">5dp</dimen>

然后您可以在xml文件中使用相同的内容,如下所示

<Button
        android:id="@+id/rButton"
        android:layout_width="wrap_content"
        android:layout_height="@dimen/button_height"
        android:layout_marginTop="@dimen/button_margin" 
        android:textSize="@dimen/buttonTextSize"
        android:padding="@dimen/left_padding" />

以相同的方式在不同的值文件夹中创建不同的dimens.xml文件,然后您可以创建相同的维度名称&amp;改变你所需的sp&amp; amp; dp值..这样在加载xml文件时,它将获取所需值文件夹

中的维值

link可以帮助您了解更多详情

答案 1 :(得分:0)

您使用的方式是deprecated from android 3.1。阅读MulitScreen Support

您的布局文件夹必须为此

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)

彻底阅读文件。