6

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

我发现了这些东西:

超大屏幕至少为 960dp x 720dp

大屏幕至少为 640dp x 480dp

普通屏幕至少为 470dp x 320dp

小屏幕至少为 426dp x 320dp

开发 Android 应用程序时应牢记哪些设备分辨率?

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

我想知道的是我应该为这些分辨率中的每一个设计我的应用程序还是单独考虑最常用的分辨率

或者

如果我没有对宽度、高度和边距等使用任何硬编码值,我永远不需要担心屏幕分辨率

或者

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

4

4 回答 4

7

我应该为这些分辨率中的每一个设计我的应用程序,还是只考虑最常用的分辨率。

您应该确保您的应用程序在所有屏幕上都能正常工作,而不仅仅是最流行的屏幕。我会从下往上开始……首先确保它在小/普通屏幕上正常工作(这样做,你确保它在所有屏幕上都能正常工作)。然后,您可以通过使用多窗格布局等来优化平板电脑的布局。

如果我没有对宽度、高度和边距等使用任何硬编码值,我永远不需要担心屏幕分辨率。

不确定您要在这里说什么,但您应该始终警惕不同的屏幕分辨率,使用dp(密度独立像素) 而不是px.

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

这应该是最后的手段。大多数时候,你的布局不会那么复杂,也没有必要。很多时候你会使用wrap_contentmatch_parent设置宽度/高度,并且经常会使用RelativeLayouts 来将视图相对于彼此隔开。如果您发现绝对必要,您只需要测量视图的宽度/高度。

于 2012-07-03T13:38:49.470 回答
4

恕我直言,您应该始终对您的应用程序进行编码,以便支持每个设备。从此处详细介绍的启动器图标(不同屏幕尺寸的不同分辨率):http: //developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html到您的应用程序布局,应设计为一切正常相对于屏幕大小放置(通过使用 match_parent 和 wrap_content 等属性)。

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

于 2012-07-03T13:37:21.703 回答
3

Best option is to get the screen width and height dynamically using simple height and width getting parameters.

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

other option is to do create it for device with highest screen width and height and then handle it mathematically for respective screen size.

于 2012-07-03T13:41:19.537 回答
2

好吧,建议为所有尺寸设计。但我知道这是很多开销。

因此,您可以做的是为您所瞄准的最大设备进行设计,并让设备根据它们的大小调整图像。不要使用硬编码值。使用wrap_contentfill_parent

And yes, dynamically adjusting the images is a good idea, even though it requires more coding on your side. This is the technique I use.

于 2012-07-03T13:39:04.040 回答