我已经阅读了很多关于支持多个设备的内容。现在我已经在我的应用程序中实现了它,我已经制作了如下所示的文件夹:
并在xml文件中声明了这个
<supports-screens
android:resizeable="true"
android:smallScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>
但是它无法正常工作,我的所有设备都从正常的布局文件夹中挑选布局应该是什么问题?
还告诉我应该怎样做才能支持xxxhdpi设备?
答案 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'等设备。
因此,为了实现多个移动屏幕支持(准确),您可以在应用中创建不同的值文件夹,如下所示
然后根据需要在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)
彻底阅读文件。