我正在尝试了解android中的多屏幕支持。是的我阅读了文档,但仍然没有什么问题。
据我所知,我需要为每个密度创建drawable,但是如何处理文本大小?
我想在我的活动上设置适合任何屏幕的标题(需要足够大并且不要扭曲文本)
我在我的Nexus7(大屏幕)上测试,android:textSize="100dp"'
当我在具有“普通屏幕”尺寸的模拟器上启动它时,我得到非常大的文本。 那么为每个屏幕尺寸制作布局是否正确?
'layout'
'layout-large'
'layout-small'
....
只需将android:textSize="70dp"
用于普通屏幕,android:textSize="50dp"
用于小屏幕?
另一个问题是如何以更有效的方式测试所有这些? 我需要用?创建模拟器?从哪里获取创建模拟器的参数以获得此结果?
答案 0 :(得分:2)
对于文字大小,您应使用sp
单位。 Docs say:
与比例无关的像素 - 这就像dp单位,但它也是 按用户的字体大小首选项缩放。建议你使用 指定字体大小时,此单位将进行调整 屏幕密度和用户偏好。
答案 1 :(得分:1)
据我所知,我需要为每个密度创建drawable,但是如何处理文本大小?
正如WebnetMobile所指出的,您首先使用sp
,因为这会考虑用户对字体比例的选择。但是,您可能需要更多。
为每个屏幕尺寸制作布局是否正确?
我建议使用维度资源,根据不同场景的需要,对文本大小维度使用不同的定义。
尽可能设计您的UI以使字体大小更加灵活。同样,如果您使用sp
,用户可以更改Android 4.0+上的文字大小,使其更大或更小,以帮助他们阅读设备上的文字。因此,您不能假设您完全控制字体的大小,因此需要进行相应的设计。这与设计一个考虑用户在浏览器中调整字体大小的网站没有显着差异。
另一个问题是如何以更有效的方式测试所有这些?我需要用?创建模拟器?
无论您遇到什么场景,都需要模拟器或设备。
从哪里获取用于创建模拟器的参数以获得此结果?
在(现在)R21版本的工具上,您可以在AVD Manager的“设备定义”选项卡中设置屏幕尺寸和密度,然后根据需要根据这些定义创建AVD。
答案 2 :(得分:0)
为了在不同的屏幕和密度下进行测试,您可以创建具有不同组合的模拟器。当我们创建仿真器设备时,我们可以设置密度(硬件下的抽象LCD密度)。
ldpi - 120
mdpi - 160
hdpi - 240
xhdpi - 320
您也可以在启动模拟器时设置屏幕尺寸