【发布时间】:2011-06-10 11:20:49
【问题描述】:
在我的应用程序中,我必须为中等密度设备使用较小的字体。可以指定吗?
【问题讨论】:
-
你可以在这里找到答案stackoverflow.com/questions/16706076/…
标签: android
在我的应用程序中,我必须为中等密度设备使用较小的字体。可以指定吗?
【问题讨论】:
标签: android
你应该使用styles,然后你可以有单独的文件夹“values”(默认)“values-hdpi”(高密度)“values-mdpi”(中等密度)等等,并把你的样式文件正确根据需要在每个文件夹中设置 textSize 值。
然后,当您使用中密度设备时,如果存在,它将在“values-mdpi”文件夹中选择文件,如果不存在,则在“values”中选择文件,对于高密度等也是如此...
同样的原则适用于所有“res”子文件夹(drawables、values 等...)
【讨论】:
"I was aware about the usefulness of using dip. I always use this",他想做的是例如为 mdpi 设置一个 textSize 为 12dp,为 hdpi 设置一个 14dp,所以这是实现此目的的方法。此外,对于您不考虑的屏幕密度,还有用于默认值的“值”文件夹...
使用倾斜度(例如14dp)而不是像素(例如14px)指定所有字体,您无需担心屏幕密度。 Android 会相应地缩放您的字体(和布局)。
编辑:这里是来自the Android docs 的 sp/dp 的比较:
dp Density-independent Pixels - 一个基于屏幕物理密度的抽象单位。这些单位相对于 160 dpi(每英寸点数)的屏幕,因此无论屏幕密度如何,160dp 始终是一英寸。 dp与像素的比例会随着屏幕密度而变化,但不一定成正比。在布局中指定视图尺寸时应使用这些单位,以便 UI 正确缩放以在不同屏幕上以相同的实际尺寸呈现。
sp Scale-independent Pixels - 这类似于 dp 单位,但它也根据用户的字体大小偏好进行缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户偏好进行调整。
【讨论】:
values/dimens.xml)。这样,您可以通过创建其他尺寸文件(例如values-ldpi/dimens.xml 和values-xhdpi/dimens.xml)为不同的屏幕 DPI 使用不同的 DP 值。这种方法的优点是您可以继续使用 DP/SP 值,同时保留 PX 装置为您提供的明显控制。
是的,用于实现适用于所有分辨率的通用应用程序。 您应该配置多个可绘制对象和相应的布局。
例如。
绘图:-
可绘制的 ldpi 可绘制的 mdpi 可绘制-hdpi
布局:-
布局-小 布局介质 布局-大
然后您可以根据您对设备所需的分辨率进行更改。 Android 支持内部配置各种屏幕分辨率的密度因子。 设备可以将自己视为适当的可绘制和相应的布局。 您不需要调整 src 文件中的任何代码行。
【讨论】: