2012-07-03 63 views
6

我已经搜索了一段时间,知道在开始设计Android应用程序之前应该考虑哪个屏幕分辨率。在设计android应用程序时应该考虑哪种屏幕分辨率?

我发现这些东西:

XLARGE屏幕至少960dp X 720dp

大屏幕至少640dp X 480dp

标准屏幕至少470dp X 320dp

小屏幕至少为426dp x 320dp

Which device resolutions should be kept in mind when developing Android Apps?

但实际上这些都不是我想要的。

什么,我想知道的是,我应该设计我的应用程序的每个分辨率或单独采取的最常用的分辨率考虑

如果我没有使用宽度,高度的任何硬编码值和利润率等,我从来不需要担心屏幕分辨率

这是多么好 - 找到该设备的宽度和高度使用的展示指标和创建所有视图根据THES e值动态

+1

您应该将您的应用程序设计为独立于解决方案,即桌面和Web开发人员几十年来的方式。 – CommonsWare

回答

7

我应该为这些解决方案中的每一个设计我的应用程序还是仅考虑最常用的分辨率。

你应该确保你的应用程序正常工作的所有屏幕,而不仅仅是最流行的一种。我会从下往上开始......首先确保它在小屏幕/普通屏幕上正常工作(并且这样做,确保它可以在所有屏幕上工作)。然后,你可以通过使用多窗格布局。如果我没有使用任何硬编码值,宽度,高度和利润率等优化布局为平板电脑等

,我从来不需要担心的屏幕分辨率。

不知道你是想什么在这里说,但你应该总是警惕,通过使用dp(密度独立像素)不同的屏幕分辨率,而不是px

使用显示指标查找设备宽度和高度,并根据这些值动态创建所有视图?

这应该是最后的手段。大多数情况下,你的布局不会那么复杂,而且也没有必要。很多时候,你会使用wrap_contentmatch_parent设置宽度/高度,很多时候你会使用RelativeLayout s到空间相对于彼此的意见。如果您发现绝对必要,您只需确定视图的宽度/高度即可。

+0

由第二点我的意思是... 。仅使用包装内容,填充父项,匹配父项等。,而不是10dp/10px –

+1

您不应该使用'px',因为它对于具有不同密度的设备来说效果不好。只要不是荒谬的,可以使用'dp'。即如果你有一个宽度为20dp的按钮,那么在99%的情况下就完美了。您只需要注意边界即,如果您将按钮的宽度设置为离开屏幕边缘,那么您就想要使用显示度量来检查屏幕的宽度,例如。但是,这再次不应该成为一个问题。这是为什么简单布局w/less视图让你的生活变得简单:) –

+0

好吧...所以单独使用dp会解决我的问题吗?...非常感谢 –

4

恕我直言,你应该总是编码你的应用程序,使每个设备都支持。从这里详细介绍的启动器图标(不同的屏幕尺寸的不同分辨率):http://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html到您的应用程序的布局,应该这样设计,以便相对于屏幕尺寸放置所有内容(通过使用诸如match_parent和wrap_content之类的属性)。

您可以尝试对其进行编码,以便在发现屏幕大小后动态创建视图,但我认为它更容易,同样有效地执行您的第一个想法!

+0

所以你正在阐述我的第二点吗?如果我理解你的答案正确 –

+0

是的,这一个“如果我没有使用任何硬编码值,宽度,高度和利润等,我从来不需要担心屏幕分辨率” – javajavajava

2

那么,建议为所有尺寸设计。但我知道这是一个很大的开销。

所以你可以做的是设计你想要的最大的设备,并让设备根据它们的尺寸调整图像。不要使用硬编码值。使用wrap_contentfill_parent

是的,动态调整图像是一个好主意,尽管它需要更多的编码。这是我使用的技术。

3

最好的办法是让屏幕宽度和高度动态的使用简单的高度和宽度得到的参数。

DisplayMetrics displaymetrics = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
     int height = displaymetrics.heightPixels; 
     int wwidth = displaymetrics.widthPixels; 

其他选项是为具有最高屏幕宽度和高度的设备创建它,然后针对各个屏幕尺寸在数学上处理它。