我已经搜索了一段时间,知道在开始设计Android应用程序之前我应该考虑哪个屏幕分辨率。
我找到了这些东西:
xlarge屏幕至少为960dp x 720dp
大屏幕至少为640dp×480dp
正常屏幕至少为470dp×320dp
小屏幕至少为426dp x 320dp
Which device resolutions should be kept in mind when developing Android Apps?
但实际上这些并不是我想要的。
我想知道的是我应该为每个分辨率设计我的应用程序还是单独考虑最常用的分辨率
或
如果我没有使用宽度,高度和边距等任何硬编码值,我永远不必担心屏幕分辨率
或
这有多好 - 使用显示指标查找设备宽度和高度,并根据这些值创建所有视图动态?
答案 0 :(得分:7)
我应该为每个分辨率设计我的应用程序,还是单独考虑最常用的分辨率。
您应确保您的应用程序在所有屏幕上正常运行,而不仅仅是最常用的屏幕。我会从下往上开始......首先确保它在小/普通屏幕上正常工作(并且这样做,确保它适用于所有屏幕)。然后,您可以使用多窗格布局等优化平板电脑的布局。
如果我没有使用任何硬编码值来表示宽度,高度和边距等,我从不需要担心屏幕分辨率。
不确定您要在此处说些什么,但是您应该总是对使用dp
(密度无关像素)而非px
的不同屏幕分辨率保持警惕。
使用“显示”指标查找设备宽度和高度,并根据这些值动态创建所有视图?
这应该是最后的手段。大多数情况下,您的布局不会那么复杂,也没有必要。很多时候您会使用wrap_content
和match_parent
来设置宽度/高度,而且通常会使用RelativeLayout
来相对于彼此间隔视图。如果您发现绝对必要,您只需要测量视图的宽度/高度。
答案 1 :(得分:4)
恕我直言,您应该始终对您的应用程序进行编码,以便支持每个设备。从此处详述的启动器图标(不同屏幕尺寸的不同分辨率):http://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html到应用程序的布局,应该设计为相对于屏幕尺寸放置所有内容(通过使用match_parent等属性) WRAP_CONTENT)。
您可以尝试对其进行编码,以便在发现屏幕尺寸后动态创建视图,但我认为它更容易,同样有效地完成您的第一个想法!
答案 2 :(得分:3)
最佳选择是使用简单的高度和宽度获取参数动态获取屏幕宽度和高度。
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int wwidth = displaymetrics.widthPixels;
其他选项是为屏幕宽度和高度最高的设备创建它,然后以数学方式处理各个屏幕尺寸。
答案 3 :(得分:2)
嗯,建议设计所有尺寸。但我知道这是一个很大的开销。
所以你能做的就是设计你想要的最大设备,并让设备根据它们的尺寸调整图像。不要使用硬编码值。使用wrap_content
或fill_parent
。
是的,动态调整图像是一个好主意,即使它需要更多的编码。这是我使用的技术。