我为我的应用设计了附加屏幕。该应用程序针对Android 1.6及更高版本。目前,该应用程序在大多数hdpi和mdpi设备上运行,少数设备具有一些奇怪的分辨率,如1024x600,164 dpi,1024x600,19 dpi,1024x600,240 dpi。我提供了替代布局,以支持下面提到的文件夹中的多个屏幕。
布局:默认布局资源。
layout-hdpi:适用于hdpi屏幕。我的项目中很少有布局需要针对此进行专门优化。
layout-mdpi:适用于mdpi屏幕。我的项目中很少有布局需要针对此进行专门优化。
layout-large:大屏幕的默认布局资源。
layout-large-hdpi:分辨率为1024x600的hdpi屏幕的布局资源
layout-sw400dp-v11:这主要适用于7英寸平板电脑。只有运行Honeycomb或以上版本的设备才能识别这一点。
现在我还需要添加对qHD屏幕的支持(540x960具有256 dpi或类似)。下面是我需要设计的示例屏幕并添加对qHD屏幕的支持。此截图是在HTC Incredible S上拍摄的,分辨率为480x800,分辨率为240 dpi。
我为qHD屏幕设计了布局,以便在这些屏幕上看起来也一样。
现在,我有以下问题:
1.考虑到我需要支持hdpi,mdpi和上面提到的奇数屏幕,我是否有正确的目录结构来提供替代资源?如果没有,我应该如何为这些屏幕提供替代资源?我真的需要设计单独的文件,以便在多个屏幕分辨率和密度下UI看起来相同。
2. qHD屏幕有256 dpi。这意味着那些屏幕是hdpi屏幕。我已经拥有hdpi屏幕的资源,在大多数设备上看起来如上所述。但是当我在qHD屏幕上查看它时,它看起来像截图下方。那么,我如何为qHD屏幕提供替代资源,这样它不会影响我目前在大多数设备上显示良好的布局资源?
@Espiandev
qHD,hdpi设备具有与显示无关的像素(DIP)屏幕尺寸为360x640,而不可思议的S是320x533,因此为什么一些图像在屏幕上相对于其他图像更高。基本上,qHD设备可以在每个屏幕上显示更多不可思议的东西。请参阅此处以获取有关DIP的说明以及更多提示
- 谢谢你的见解。我知道这一点。我也读过Dianne Hackborn的帖子, “管理屏幕尺寸的新工具” - http://android-developers.blogspot.in/2011/07/new-tools-for-managing-screen-sizes.html
从它的外观来看,你现在正在使用一些边距或填充在目标/增益/上方的部分,而是建议将它们的重力改为底部(即将它们对齐到屏幕的底部)和然后在项目下方使用边距或填充
- 不,我没有使用这些部件的填充或边距。它是一个相对布局,其中目标/增益/放弃按钮低于该米带按钮。正如您所建议的那样,将重力设置在底部并具有底部衬垫;是的,我也试过了,但是那个米带按钮和这些圆圈之间的距离增加了,我必须修改那些眼镜之间的尺寸和边距,按钮下面的按钮和米带按钮创建不同的布局文件。当您在小屏幕设备上查看此屏幕时,视图将重叠,因为小屏幕设备可以显示较少的视图。
但我会努力让你的应用适应屏幕,而不是试图将屏幕尺寸分成这样,因为你不应该真的需要单独的布局资源用于mdpi,hdpi等。
- 我同意通常我不需要为mdpi和hdpi屏幕单独布局。但这里的要求是屏幕应该在所有屏幕上看起来完全相同。就像,黄色圆圈内的所有视图都不应该超出该圆圈。中心的那个按钮应始终位于中心位置。此外,米带按钮顶部和下方的3个小圆圈的相对尺寸应相同。这让我别无选择,只能为mdpi和hdpi屏幕创建不同的布局。
我为qHD屏幕创建了不同的布局文件。现在我的问题是我在哪里放置它以便qHD设备将使用该文件,其他设备将继续工作,因为它们现在正在工作。
答案 0 :(得分:0)
qHD,hdpi设备的显示独立像素(DIP)屏幕尺寸为360x640,而不可思议的S是320x533,因此为什么有些图像相对于其他图像在屏幕上方较高。基本上,qHD设备可以在每个屏幕上显示更多不可思议的东西。有关DIP的说明和更多提示,请参阅here。
没有真正的方法可以让UI在Incredible S和qHD设备上看起来完全一样。与iOS设备不同,屏幕尺寸非常多样。从它的外观来看,你目前正在使用一些边距或填充在目标/增益/上方的部分,而是建议将它们的重力改为底部(即将它们对齐到屏幕的底部),然后使用在项目下方的边距或填充。这样,它有望与您的午餐/晚餐盒保持一致。如果您发布XML文件,这将有助于诊断问题。
在Android 3.2之前,我不相信有两种方法可以区分上述两种情况,但在3.2之后,您可以使用swXXXdp(最短宽度)属性。但我会努力让你的应用程序适应屏幕,而不是试图将屏幕大小分成这样,因为你不应该真的需要单独的布局资源用于mdpi,hdpi等。