3

对于一个应用程序,我想从上到下设计布局:从全屏大小开始,将屏幕大小拆分为网格并将控件放置在该网格中的固定位置等。对我来说,这似乎是最简单的方法设计适合几乎所有屏幕尺寸的应用程序。理想情况下,我也想缩放其他东西:Cornerroundings、fontsizes 等。

到目前为止,我的印象是 Android 不想支持这种方法:几乎所有东西都有缩放机制,但它变得非常丑陋:LinearLayout 和 TableLayout 支持权重,所以我可以很好地使用它们,但如果我想要边距随着屏幕尺寸缩放我需要很多嵌套布局。这有什么设计原因吗?实现类似于 AbsoluteLayout 的布局应该非常简单,但一切都基于可用屏幕尺寸的一小部分,但不存在这样的东西。

为什么不?是否有某种原因为什么人们不想要这样的东西,或者只是没有人费心去实现它?

4

1 回答 1

1

对于随屏幕尺寸缩放的布局,不要使用像素来指定尺寸。改用“dp”单位(或倾角)。这个单元是独立于密度的,所以当你让你的布局完全适合模拟器屏幕尺寸时,Android 会为你处理缩放,它适用于小到便宜手机 (320x240px) 的屏幕到大到10" 平板电脑。您当然需要提供各种分辨率的图像,因为图像缩放总是很快变得非常糟糕。

来自官方 Android 开发者网站:

用像素定义布局尺寸是一个问题,因为不同的屏幕具有不同的像素密度,因此相同数量的像素可能对应不同设备上的不同物理尺寸。因此,在指定尺寸时,请始终使用 dp 或 sp 单位。dp 是与密度无关的像素,对应于 160 dpi 像素的物理尺寸。sp 是相同的基本单位,但按用户首选的文本大小(它是与比例无关的像素)进行缩放,因此在定义文本大小时应使用此测量单位(但绝不用于布局大小)。

在同一页面中,他们展示了如何为各种屏幕密度提供图像:

http://developer.android.com/training/multiscreen/screendensities.html

于 2012-12-19T21:49:12.183 回答