Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:支持多屏幕_Android_Screen_Resolution - Fatal编程技术网

Android:支持多屏幕

Android:支持多屏幕,android,screen,resolution,Android,Screen,Resolution,我正在尝试编程到多个屏幕。 我目前有两个设备: 4英寸屏幕的三星Galaxy S2:480x800 密度:1.5 高度(dp):533.3333 宽度(dp):320.0 屏幕布局:34=0010 0010 三星Young 3.2英寸屏幕:320x480 密度:1.0 高度(dp):480.0 宽度(dp):320.0 屏幕布局:18=0001 0010 因此,这些设备在密度和屏幕布局上有所不同(screenLayout_LONG_YES与screenLayout_LONG_NO) 我准备了两种

我正在尝试编程到多个屏幕。 我目前有两个设备:

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

三星Young 3.2英寸屏幕:320x480 密度:1.0 高度(dp):480.0 宽度(dp):320.0 屏幕布局:18=0001 0010

因此,这些设备在密度和屏幕布局上有所不同(screenLayout_LONG_YES与screenLayout_LONG_NO)

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

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

我没有改变Java代码,也就是说,它没有检查选择高分辨率或低分辨率的分辨率

问题是,这两个设备都位于同一个文件夹中,既在布局中,也在可绘制中

我做错了什么? 在android中,处理多个屏幕大小的正确方法是什么

谢谢!
AJ

在每个文件夹中添加布局

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"

我想你只是用错了设备的文件夹

正如您在本节中看到的,范围没有严格的界限

了解您的设备有哪些DPI很重要:

  • S2星系:217 dpi
  • 三星杨:133 dpi
在上面发布的链接的“使用配置限定符”部分中,您有一个表,其中描述了密度:

  • ldpi:~120dpi
  • mdpi:~160dpi
  • hdpi:~240dpi
  • xhdpi:~320dpi
因此,尝试将布局和图像从
mdpi
放入
hdpi
文件夹,并从
ldpi
放入
mdpi


您也可以尝试使用,您可以根据设备的最小宽度来定义布局。

三星galaxy S2是hdpi设备,因此创建一个可绘制hdpi而非可绘制mdpi的文件夹。同样,对于三星Young来说,它将采用可拉拔mdpi,而不是可拉拔ldpiYou,这是一个非常重要的错误。文件夹布局很小,并且后缀mdpi、ldpi等不直接依赖于屏幕分辨率。mdpi-取决于屏幕上的像素密度,小布局取决于屏幕的物理大小。阅读这里,了解它是如何工作的,以及为什么你不需要使用屏幕分辨率。你是对的@Vaibs-事实上,我混合了这两种设备。还有,我终于明白了这一点,谢谢你的大力帮助!我的解决方案是使用可绘制mdpi和可绘制hdpi,对于布局:布局mdpi和布局hdpi。这对我有用。谢谢@Digvesh。你在回答中没有提到可拖拉的部分。我将不同的图像放入可绘制mdpi(用于较低的分辨率)和可绘制hdpi(用于较高的分辨率)。这些图像具有相同的名称。但是,更高分辨率的布局会从mdpi文件夹而不是hdpi文件夹中拾取可绘制内容。如何处理此问题?可拉伸大mdpi可拉伸大hdpi(适用于Nexus 7)//适用于10英寸平板电脑可拉伸xlarge mdpi!最后,我使用了layout mdpi和layout hdpi,它对我很有用!