不同屏幕上的Android字体大小

时间:2013-04-29 20:32:30

标签: android

我想为不同的屏幕尺寸使用不同的字体大小。

我读过很多文章,但我不确定用法。对于不同的屏幕尺寸使用不同的尺寸资源文件是正确的,如下面的代码:

res/values/dimens.xml
res/values-small/dimens.xml
res/values-normal/dimens.xml
res/values-xlarge/dimens.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <dimen name="text_size">18sp</dimen>
</resources>

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <dimen name="text_size">24sp</dimen>
</resources>
...

我还读到正确的方法是使用sp作为字体大小,但这不符合我期望的不同屏幕尺寸的字体。

如果存在,对每种尺寸使用不同尺寸有什么缺点?

谢谢

3 个答案:

答案 0 :(得分:1)

最好的方法是为您希望支持的每个屏幕创建不同的布局资源。将每个布局放在一个单独的文件夹中,该文件夹指定屏幕的宽度。例如,正常大小的布局放在res / layout文件夹中,7英寸平板电脑(600像素宽)的布局资源将放在res / layout-sw600dp文件夹中。使资源名称相同,但相应地调整字体大小。

答案 1 :(得分:0)

@up不,这不是好方法。

@topic你可以得到宽度&amp;屏幕高度(以及视图的w&amp; h)。接下来,您可以设置字体,例如宽度屏幕的2%。如果您有内容1260x720,0.02 * 1260 = 24,6 px(您也可以使用(int)24.6将double转换为int)

答案 2 :(得分:0)

我做了一些非常相似的事情,它对我来说很好。有些人把这些值放在各种布局中,比如Fietser建议,但是如果你的所有布局最终都是完全相同的,除了字体大小,你的方法更好。这样你就可以有一个布局,只修改字体大小。但有时你可能会在实际布局xml中有所改变,所以这可能是两种方法之间的冲突。