2014-01-21 195 views
0

我想编程到多个屏幕。 我现在有两个设备:Android:支持多屏幕

三星Galaxy S2为4英寸的屏幕:480x800的 密度:1.5 高度(DP):533.3333 宽度(DP):320.0 屏幕布置:34 = 0010 0010

三星杨与3.2英寸的屏幕:分辨率320x480 密度:1.0 高度(DP):480.0 宽度(DP):320.0 屏幕布置:18 = 0001 0010

因此,该装置在密度和屏幕布置不同(SCREENLAYOUT_LONG_YES与SCREENLAYOUT_LONG_NO)。

我准备了两种尺寸的图像按钮,并将它们放在drawable-mdpi(用于较高分辨率)和drawable-ldpi(用于较低分辨率)。图像按钮具有相同的名称。

我也编写了两种不同的布局,但是使用相同的文件名并将它们放在布局文件夹(用于较高分辨率)和布局小(用于较低分辨率)。

我离开Java代码时没有任何改变,即它没有检查选择高分辨率或低分辨率的分辨率。

问题是,这两个设备转到相同的文件夹,无论是在布局和都在绘制。

我在做什么错? 在Android中处理多个屏幕尺寸的正确方法是什么?

谢谢! AJ

+0

三星galaxy S2是hdpi设备,所以创建一个文件夹drawable-hdpi而不是drawable-mdpi。同样,对于三星年轻人,它将从drawable-mdpi中获取,而不是从drawable-ldpi中获得 – Vaibs

+0

你犯了非常重要的错误。文件夹布局较小,后缀-mdpi,ldpi等不依赖于屏幕分辨率。 mdpi - 取决于屏幕上的像素密度和布局 - 小取决于屏幕的物理尺寸。请阅读http://developer.android.com/guide/practices/screens_support.html了解它的工作原理以及为什么不需要使用屏幕分辨率。 –

+0

你是对的@Vaibs - 事实上我在这两种设备之间混合。另外,Demand,我最终明白了这一点,并感谢您的大力帮助!我的解决方案是使用drawable-mdpi和drawable-hdpi以及布局:layout-mdpi和layout-hdpi。这对我有效。 –

回答

2

中的每个文件夹

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 

添加布局清单文件

<supports-screens android:resizeable=["true"| "false"] 
        android:smallScreens=["true" | "false"] 
        android:normalScreens=["true" | "false"] 
        android:largeScreens=["true" | "false"] 
        android:xlargeScreens=["true" | "false"] 
        android:anyDensity=["true" | "false"] 
        android:requiresSmallestWidthDp="integer" 
        android:compatibleWidthLimitDp="integer" 

和详细link

+0

谢谢@Digvesh。你在答案中没有提到可绘制的。我把drawable-mdpi(低分辨率)和drawable-hdpi(高分辨率)放在不同的图像中。图像具有相同的名称。然而,更高分辨率的布局,从mdpi文件夹,而不是从hdpi文件夹中选取绘图。如何处理这个? –

+0

drawable-large-mdpi drawable-large-hdpi(适用于Nexus 7) //适用于10英寸平板电脑 drawable-xlarge-mdpi –

+0

谢谢!最终,我使用了layout-mdpi和layout-hdpi,它对我很有用! –

0

我觉得你只是使用了错误的文件夹为您的设备。

正如您在Range of screen supported的部分所见,范围没有严格的界限。

知道哪些DPI设备是很重要的有:

  • 银河S2:217 dpi的
  • 三星杨:133 dpi的

部分中 “使用配置的限定” 的在你上面有一张表格,其中描述了密度:

  • ldpi:〜120dpi
  • MDPI:〜160dpi
  • 华电国际:〜240dpi
  • xhdpi:〜320dpi

所以尽量把你的布局和图像从你的mdpi到您的hdpi文件夹,并从ldpimdpi

您也可以尝试使用new size qualifiers,您可以在其中根据例如设备的最小宽度。