1

我正在尝试了解 android 中的多屏支持。是的,我阅读了文档,但仍然有几个问题。

据我了解,我需要为每个密度创建可绘制对象,但是如何处理文本大小?

我想在我的活动上设置适合任何屏幕的标题(需要足够大并且不要扭曲文本)我在我的 Nexus7(大屏幕)上测试它看起来不错android:textSize="100dp"'

当我在具有“普通屏幕”大小的模拟器上启动它时,我会得到非常大的文本。那么为每个屏幕尺寸制作布局是正确的解决方案吗?

'layout'
'layout-large'
'layout-small'
....

只是制作android:textSize="70dp"普通屏幕和android:textSize="50dp"小屏幕?

另一个问题是如何以更有效的方式测试所有这些?我需要创建模拟器吗?在哪里获取创建模拟器以获得此结果的参数?

  1. 超大屏幕
    • 低密度脂蛋白
    • mdpi
    • 电视转播
    • hdpi
    • xhdpi
  2. 大屏幕
    • 低密度脂蛋白
    • mdpi
    • 电视转播
    • hdpi
    • xhdpi
  3. 中屏
    • 低密度脂蛋白
    • mdpi
    • 电视转播
    • hdpi
    • xhdpi
  4. 小屏幕
    • 低密度脂蛋白
    • mdpi
    • 电视转播
    • hdpi
    • xhdpi
4

3 回答 3

2

对于文本大小,您应该使用sp单位。文档说

Scale-independent Pixels - 这类似于 dp 单位,但它也根据用户的字体大小偏好进行缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户偏好进行调整。

于 2012-11-24T15:33:39.690 回答
1

据我了解,我需要为每个密度创建可绘制对象,但是如何处理文本大小?

正如 WebnetMobile 所指出的,您首先使用sp,因为这会将用户选择的字体比例考虑在内。但是,您可能需要的还不止这些。

那么为每个屏幕尺寸制作布局是正确的解决方案吗?

我建议使用维度资源,根据不同场景的需要对文本大小维度进行不同的定义。

但是,在可能的情况下,将您的 UI 设计为在字体大小方面更加灵活。同样,如果您使用sp用户可以在 Android 4.0+ 上更改文本的大小,使其变大或变小,以帮助他们阅读设备上的文本。因此,您不能假设您可以完全控制字体的大小,因此需要进行相应的设计。这与设计一个考虑用户在浏览器中调整字体大小的网站没有太大区别。

另一个问题是如何以更有效的方式测试所有这些?我需要创建模拟器吗?

对于您所关心的任何场景,您都需要模拟器或设备。

在哪里获取创建模拟器以获得此结果的参数?

在工具的(现在最新的)R21 版本上,您可以在 AVD 管理器的“设备定义”选项卡中设置屏幕大小和密度,然后根据需要根据这些定义创建 AVD。

于 2012-11-24T15:39:23.790 回答
0

为了在不同的屏幕和密度下进行测试,您可以创建具有不同组合的模拟器。当我们创建模拟器设备时,我们可以设置密度(硬件下的抽象 LCD 密度)。

  ldpi - 120 
  mdpi - 160
  hdpi - 240
  xhdpi - 320

您也可以在启动模拟器时设置屏幕大小

于 2012-11-24T17:43:14.740 回答