2

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

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

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字体大小,但这并不适合我期望的不同屏幕尺寸的字体。

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

谢谢

4

3 回答 3

1

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

于 2013-04-29T20:39:21.917 回答
0

@up 不,这不是好方法。

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

于 2013-04-29T21:04:25.913 回答
0

我做了一些非常相似的事情,对我来说效果很好。有些人将值放在各种布局中,例如 Fietser 建议的,但是如果您的所有布局最终除了字体大小之外都完全相同,那么您的方法会更好。这样你就可以有一个单一的布局,只修改字体大小。但有时您可能会在实际布局 xml 中发生变化,因此这可能是两种方法之间的一种清洗。

于 2013-04-29T22:08:19.267 回答