我想为不同的屏幕尺寸使用不同的字体大小。
我读过很多文章,但我不确定用法。对于不同的屏幕尺寸使用不同的尺寸资源文件是正确的,如下面的代码:
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
作为字体大小,但这不符合我期望的不同屏幕尺寸的字体。
如果存在,对每种尺寸使用不同尺寸有什么缺点?
谢谢
答案 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中有所改变,所以这可能是两种方法之间的冲突。