Android应用程序设计的分辨率解决方案。

3
我开始设计一个安卓小应用,但这是我第一次设计安卓应用。我有一个关于设备和显示器的问题。我已经阅读了http://developer.android.com/上的所有开发者指南,包括关于DPI和像素的内容,但仍不清楚我的问题。
指南中提到:"一种方法是在基本标准(正常大小和MDPI)下工作,并将其放大或缩小到其他桶中。另一种方法是从具有最大屏幕尺寸的设备开始,然后缩小并找出您需要在较小屏幕上进行的UI妥协。"
我想从最大的屏幕尺寸开始设计,因此选择XHDPI 320DPI作为例子,我想选择Nexus 4。那么我需要为PSD选择什么分辨率(像素和DPI)呢?
我认为我需要创建1280x768像素和320dpi的PSD。如果是这样,当我需要缩小到160dpi时,我需要创建新的160dpi PSD并将320dpi的元素调整大小吗?
请帮助我,我很困惑。
2个回答

3
密度和屏幕尺寸并不相同。
XHDPI是密度。1280 x 768是屏幕分辨率,而不是屏幕尺寸。Nexus 4具有4英寸的屏幕,被认为是“正常”大小。如果你有一个8英寸屏幕,分辨率是1280 x 768,它将是160dpi,并且将是MDPI。但是,您仍然可以使用为Nexus 4创建的1280 x 768资源,系统不必缩放图像。
以下是所有这些相关的方式:使用“正常”大小的Nexus 4屏幕,您可以显示各种UI元素,需要记住它们足够大,以便阅读,轻敲等等。如果在被认为是“大”的7英寸屏幕上启动了相同的应用程序,则可能会添加其他UI元素,因为您拥有更多的不动产。到目前为止还好吗?
现在,假设4英寸屏幕和7英寸屏幕具有相同的分辨率(1280 x 768),它们将具有不同的密度。 4英寸是XHDPI,而7英寸是HDPI(我的Nexus 7报告213dpi)。
如果您有一个80 x 80像素的图像,在Nexus 4上它将是1/4英寸平方,但在Nexus 7上它将是1/3英寸平方。整个UI看起来会更大,有点像Fisher-Price品牌的玩具。庆幸的是,Android为您缩放UI,只要使用“dp”声明UI元素的大小即可。您可以以不同的密度提供资产,以便Android不必太多地缩放位图 - 尽管它仍然会这样做。
因此,如果您正在开发手机应用,请首先针对普通屏幕(和XHDPI,如果那是您的开发设备)进行目标设定,并提供所有XHDPI的资源。然后,如果要使UI在平板电脑上更易于使用,请为大屏幕创建备用布局。最后,缩放支持的其他分辨率的图像。
你可以使用PSD,但我个人更喜欢矢量图形,因为它们可以完美缩放。
我不是Photoshop用户,但是由于它是光栅图,所以我会使用比您预期使用的更高分辨率开始,然后按比例缩小。至少,我会为1600 x 2560的Nexus 10设计,然后从那里缩小。在我的过程中,我使用CorelDraw(长故事),在1英寸 x 1英寸的框中设计图标,然后以各种分辨率导出。

谢谢!我知道我需要为不同的DPI设计额外的元素。问题是在使用Photoshop制作应用程序时,从哪个最佳分辨率/密度开始工作?该应用程序具有复杂的UI元素。 指南中说:“另一种方法是从屏幕尺寸最大的设备开始,然后缩小并找出您需要在较小屏幕上进行的UI妥协。”我喜欢这种方式。但我不知道需要创建什么样的PSD文件。 - Natio Li
要在Photoshop中使用XHDPI,我需要创建320DPI的PSD文件? 如果我想使用MDPI,我需要使用160DPI的PSD文件? - Natio Li
在Photoshop中设置的DPI不应该有影响。当您将素材(PNG)放置在各种可绘制文件夹中时,像素密度是隐含的。也就是说,您的320dpi PNG应放置在drawable-xhdpi中。 - 323go
好的!)现在我找到了答案!) - Natio Li
Nexus 4:xhdpi = 320ppi(每英寸像素),因此80 px / 320 px / in = 1/4英寸。 Nexus 7:hdpi = 240 ppi,因此80 px / 240 px / in = 1/3英寸。(已更正) - 323go

0

更详细地说明你想要做什么会更有帮助。你是想设计你的图标,还是整个UI,或者其他什么?

在Android中,UI主要通过xml来设计,应尽可能使用默认样式以保持与操作系统的一致性和美观性。对于许多应用程序而言,除了启动器图标之外,没有真正需要进行图形工作的地方,而针对启动器图标,开发者网站上有相关指南。

如果你正在尝试设计一些元素,比如图标,请先确定它们在最大屏幕尺寸上需要多大,然后从那里开始。接着你可以将它们缩小,但不应该实际绘制整个UI或其他任何东西。看看一些Android示例中的图形是如何完成的,我发现它们在尝试解决问题时非常有用。


我需要使用自定义设计元素来设计整个用户界面。我需要选择正确的分辨率开始工作。同时,我非常需要在设计时看到整体的UI外观。 - Natio Li
好的,你不能只是简单地绘制一个UI,它并不是那么简单。你需要制作你的资源并定义它们之间的交互方式。Eclipse ADT插件包括一个图形UI设计工具,因此一旦你有了你的图片和其他东西,就不需要太多的XML工作了,但你仍然不能完全看到所有的东西。 - lkrasner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接