在我的应用程序中,我必须使用较小的字体用于中密度设备。是否可以指定?
答案 0 :(得分:30)
您应该使用styles,然后您可以拥有单独的文件夹“values”(默认)“values-hdpi”(高密度)“values-mdpi”(中密度)等等并放置您的样式文件根据需要在每个文件夹中使用正确的textSize值。
然后,当你处于中密度设备时,如果存在,它将在“values-mdpi”文件夹中选择文件,如果不存在,则选择“值”,对于高密度等,则选择相同的文件...
同样的原则适用于al“res”子文件夹(drawables,values等...)
答案 1 :(得分:28)
使用逢低(例如14dp
)而非像素(例如14px
)指定所有字体,您无需担心屏幕密度。 Android会相应地缩放字体(和布局)。
编辑:这是来自the Android docs的sp / dp的比较:
<强> DP 强> 密度无关像素 - 一种基于屏幕物理密度的抽象单元。这些单位相对于160 dpi(每英寸点数)的屏幕,因此无论屏幕密度如何,160dp始终为1英寸。 dp与像素的比率将随着屏幕密度而变化,但不一定成正比。在布局中指定视图尺寸时,您应该使用这些单位,以便UI正确缩放以在不同屏幕上以相同的实际尺寸渲染。
<强>属强> 与比例无关的像素 - 这与dp单位类似,但它也可以根据用户的字体大小首选项进行缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户偏好调整它们。
答案 2 :(得分:0)
是的,用于实现适用于所有分辨率的通用应用程序。 你应该配置多个drawables&amp;相应的布局。
例如
绘项目: -
抽拉-LDPI 绘制,MDPI 抽拉-HDPI
布局: -
布局小 布局中 布局大
然后您可以根据设备所需的分辨率进行更改。 Android支持各种屏幕分辨率的密度因子的内部配置。 该设备可以采取适当的可绘制和相应的布局。 你不需要调整你的src文件中的任何代码行。