tv.setTextSize(14);
我将TextView字体大小设置为14sp。 当我在Nexus One中运行我的应用程序时,字体大小正常。 但是,当我在Nexus 7中运行它时,字体很小。 这是因为Android根据密度缩放字体大小。 Nexus 7密度低于Nexus One,Android缩放字体大小下降。 如何调整与屏幕大小成比例的字体大小?
答案 0 :(得分:3)
使用XML资源。在XML资源文件(我通常称之为'dimens.xml')中,定义一个名为font_size
的维度资源。在文件夹'values-normal'和'values-large'中创建'dimens.xml'文件。默认情况下将使用'values'中的字体大小,但是大屏幕(如Nexus 7)将使用'values-large'中的大小。如果你想明确支持10“平板电脑,你也可以在'values-xlarge'中定义它。
可以使用textSize="@dimen/font_size"
以及tv.setTextSize(getResources().getDimension(R.dimen.font_size))
的代码以XML格式设置尺寸。
您的dimens.xml文件应如下所示:
<resources>
<dimen name="font_size">14sp</dimen>
</resources>
答案 1 :(得分:1)
如果您使用dimens.xml方法会更好,并为文件夹中的手机和平板电脑生成不同的版本:
res / values / dimens.xml - &gt;对于默认尺寸
res / values-normal / dimens.xml - &gt;适用于手机尺寸
res / values-large / dimens.xml - &gt;对于平板电脑尺寸(设置更大的字体大小值,可能填充等等...
答案 2 :(得分:0)
您可以从dimes.xml
在dimens.xml
中定义维度。例如:
<dimen name="my_text_size">14sp</dimen>
然后在您的代码中使用它:
tv.setTextSize(getResources().getDimension(R.dimen.my_text_size));