2015-05-04 140 views
2

我在互联网上搜索了很多关于此主题的信息,发现了一些有用的链接,但仍然无法设计支持所有设备尺寸和分辨率的UI。我从开发者网站Supporting Multiple Screens和这个blog关于最小宽度技术阅读了关于这个话题的细节。目前我已经关注this approach其中我创建了一个布局文件夹,并为不同文件夹中的每个屏幕密度设置尺寸。目前我res文件夹看起来像这样支持多屏幕的设计布局

res

我创建了一个单独的文件夹布局并定义了默认值的文件夹的尺寸为标准屏幕大小(也就是Nexus S的4.0inch 480×800华电国际),然后我抄那个维度文件在值-sw600dp文件夹中,并且调整了适用于7英寸平板电脑的平板电脑的维度。但现在我正在尝试设计其他手机/设备,如Galaxy Nexus 4.7英寸720x1280 xhdpi或其他大型手机,如galaxy s3,s4等,但不知道如何去做。如果我将dimen文件放入值sw320dp-xhdpi文件夹中以调整它适用于Galaxy Nexus 4.7英寸720x1280,它也会更改为正常(Nexus S 4.0英寸480x800 hdpi)屏幕。所以我对这些设计限定符非常困惑。任何人都可以描述一种确切的方式或标准方法/布局层次来支持所有屏幕尺寸?

+0

请确保您不会与像素和dp混淆。与Galaxy Nexus 4.7 720x1280 xhdpi(所以2倍),你的最小宽度仍然小于480dp – dumazy

+0

所以这意味着双方Galaxy Nexus 4.7 720x1280 xhdpi和Nexus S 4.0英寸480x800 hdpi相同的文件夹将使用值,sw480dp? –

+0

我已经在 – dumazy

回答

0

为不同的屏幕尺寸创建不同的布局文件夹,如布局大,布局小,布局xlarge,布局xxlarge等。但我不知道您在xml文件中使用了哪种布局。 总是尝试使用LinearLayout和RelativeLayout。不要在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" 
       android:largestWidthLimitDp="integer"/> 
1

你可能会像素和密度独立像素(DP或DIP)相混淆。

的Galaxy Nexus 720x1280像素xhdpi(2×)指的DP值为360x640,所以最小宽度(SW)是360。 Nexus S的4.0inch为480x800 HDPI(1.5倍)具有320

最小宽度,从而两个这些将得到值的值 - sw320

+0

下面回答好了我已经明白了你的观点,但是我创建单个布局文件夹的方法有多个值文件夹以支持多个屏幕是正确的吗? –

+0

这取决于你做什么。如果您的布局在所有设备上看起来都一样,那么只需使用其他尺寸,这是正确的。如果您在大型平板电脑上的布局与手机上的布局不同,例如平板电脑上的多个片段和手机上只有一个片段,则应该创建不同的布局文件 – dumazy