我正在尝试编程到多个屏幕。 我目前有两个设备:
三星Galaxy S2屏幕为4英寸:480x800 密度:1.5 高度(dp):533.3333 宽度(dp):320.0 screenLayout:34 = 0010 0010
Samsung Young的屏幕为3.2英寸:320x480 密度:1.0 高度(dp):480.0 宽度(dp):320.0 screenLayout:18 = 0001 0010
因此,设备的密度和screenLayout不同(SCREENLAYOUT_LONG_YES与SCREENLAYOUT_LONG_NO)。
我准备了两种尺寸的图像按钮,并将它们放入drawable-mdpi(用于更高分辨率)和drawable-ldpi(用于较低分辨率)。图像按钮具有相同的名称。
我还写了两个不同的布局,但是,使用相同的文件名并将它们放在布局文件夹中(对于更高的分辨率)和布局 - 小布局(对于较低的分辨率)。
我没有更改Java代码,也就是说,它没有检查选择高分辨率还是低分辨率的分辨率。
问题是,这两个设备在布局中都是同一个文件夹,都是可绘制的。
我做错了什么? 在android中处理多种屏幕尺寸的正确方法是什么?
谢谢! AJ
答案 0 :(得分: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
答案 1 :(得分:0)
我认为您只是为您的设备使用了错误的文件夹。
正如您在Range of screen supported部分所看到的,范围没有严格的界限。
了解您的设备有哪些DPI非常重要:
在上面发布的linke的“使用配置限定符”部分中,您有一个表格,其中描述了密度:
因此,请尝试将您的布局和图片从mdpi
放到hdpi
个文件夹,然后从ldpi
放到mdpi
。
您也可以尝试使用new size qualifiers,您可以在其中根据例如设备的最小宽度。