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

Android 为多屏幕支持实现多布局不起作用,android,android-layout,Android,Android Layout,我读过很多关于支持多个设备的文章。现在我已经在我的应用程序中实现了它,我创建了如下文件夹: 布局默认文件夹 大布局 布局法线 布局小 布局xlarge 布局XXL 并在xml文件中声明了这一点 <supports-screens android:resizeable="true" android:smallScreens="true" android:largeScreens="true" an

我读过很多关于支持多个设备的文章。现在我已经在我的应用程序中实现了它,我创建了如下文件夹:

布局默认文件夹 大布局 布局法线 布局小 布局xlarge 布局XXL 并在xml文件中声明了这一点

<supports-screens
            android:resizeable="true"
            android:smallScreens="true"
            android:largeScreens="true"
            android:xlargeScreens="true"
            android:anyDensity="true"/>
但是它不工作,我的所有设备都在从普通的布局文件夹中选择布局这里应该有什么问题


另外,请告诉我如何支持xxxhdpi设备?

根据本文档中的说明,旧组被弃用为小型、普通、大型和xlarge,这就是为什么我们必须迁移到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)
注意:从Android 3.2 API级别13开始,这些大小组是 不推荐使用基于屏幕大小管理的新技术 在可用的屏幕宽度上。如果你是为安卓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)
有关更多支持,请参阅文档

所以这里也会有一个奇怪的问题,我们要控制不同的移动设备,而不是平板电脑,也就是说,我们有像3.5'5',5.5'之类的设备

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

然后根据需要在dimens.xml文件中声明所有维度值,并使用维度文件中的值,这意味着xml文件中没有硬编码的值。。每个值都应该来自dimens文件,如@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文件,然后创建相同的维度名称并更改所需的sp和dp值。。因此,在加载xml文件时,它将从required values文件夹中获取维度值

这可能会帮助您了解更多详细信息

android 3.1不推荐您使用的方式。阅读

您的布局文件夹必须如下所示

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)

仔细阅读文档。

您的文件夹名称不正确,应该是res/layout-sw600dp,请检查其他问题,例如,您能否更新您的问题,以便我们了解您的res文件夹如何?@t这些是如下布局默认文件夹布局大布局正常布局小布局xlarge布局-xxlarge@CoasMckey查看我的更新answer@alp但sw指的是平板电脑屏幕,我已经读了这个文件,我已经读了1000遍了,你可以在表格一的版式部分看到,他们说这个尺寸的小资源用于小屏幕。正常大小屏幕的正常资源。这是基线大小。用于大屏幕的大型资源。XLE超大屏幕资源。你说的是平板电脑,请在您回答中完整地链接您所说的方式不适用于android 3.1。那么如何支持不同的手机屏幕而不是平板电脑?通过创建不同的维度文件夹,您可以支持不同的手机屏幕我想支持不同的手机而不是平板电脑,实际上我的应用程序不适用于平板电脑