创build多屏幕支持的应用程序的Android

我正在Android中创build一个必须支持多个屏幕的应用程序。

为了这个目的,我已经阅读了许多答案,我最喜欢的一个状态是,我可以在res文件夹中创build不同的文件夹,

对于小屏幕布局 – 小

对于大屏幕布局来说

对于超大屏幕布局-xlarge

我必须为同名的不同屏幕创build不同的布局。 如mylayout.xml

我必须把下面的代码放在manifest.xml文件中

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

最后我只需要在我的Activity文件中写下下面的代码,

  setContentView(R.layout.mylayout); 

现在,当我在不同大小的屏幕上运行这个应用程序时,它应该根据屏幕分辨率从不同的文件夹获取布局。

但是这不是在我的情况发生。它只需要布局文件夹中定义的布局

请有人可以解释一下为什么发生这种情况,我如何解决这个问题,以便我的应用程序可以在所有大小的屏幕上有效地运行。

Solutions Collecting From Web of "创build多屏幕支持的应用程序的Android"

尝试如下:

  • 布局sw320dp
  • 布局sw480dp
  • 布局sw600dp
  • 布局sw720dp

代替

  • 布局小,
  • 布局大等…

请参考下面的链接:

http://developer.android.com/guide/practices/screens_support.html对于不同的屏幕尺寸,以下是应用程序中的资源目录列表,它为不同的屏幕尺寸提供了不同的版面devise,并为不同的位图绘制了小,中,高和超高密度的屏幕&#x3002; 您可以在res文件夹中使用不同大小的布局文件,也可以根据密度来绘制图像。

  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 

在这里输入图像说明 res / drawable-mdpi / my_icon.png //用于中等密度的位图res / drawable-hdpi / my_icon.png //用于高密度res / drawable-xhdpi / my_icon.png的位图//用于超高密度的位图

 <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> 

其次是任何活动使用这一行..

机器人:configChanges = “方向|屏幕尺寸| keyboardHidden”

在值文件夹命名约定像layout-small只适用于api version less than 3.1 。 您应该创buildlayout-sw600dp值为大于3.1的api级别的值文件。 阅读这个http://developer.android.com/guide/practices/screens_support.html3.1api

在这里输入图像说明 像这样你应该为每种types的设备创buildlayout-sw600dp,layout-sw720dp。 layout-sw600dp表示此布局适用于最小宽度为600dp的设备如果您有layout-600dp和layout-sw720dp文件夹。 第一个布局文件夹适用于最小宽度为600dp(7英寸平板电脑)至720dp的设备,第二个适用于宽度小于720dp(10英寸平板电脑)的设备。

如果您的最低要求版本高于3.1,则不需要布局较小的layoutxLarge文件夹。 否则你不得不考虑这两种布局fromats。

下面是一个快速清单,介绍如何确保您的应用程序在不同的屏幕上正确显示:

在XML布局文件中指定尺寸时wrap_content, fill_parent,使用wrap_content, fill_parent,dp单位。 不要在应用程序代码( .java文件)中使用硬编码的pixel值。 不要使用AbsoluteLayout (在Android 1.5不推荐使用)。 你应该使用RelativeLayout ,它使用相对定位来布置它的子视图。 为不同的屏幕密度提供替代位图可绘制。

花些时间阅读这些screens_support或获取更好的想法。请参阅Android如何查找最佳匹配资源,以便知道将资源放在哪里。