0
tv.setTextSize(14);

我将 TextView 字体大小设置为 14sp。当我在 Nexus One 中运行我的应用程序时,字体大小还可以。但是,当我在 Nexus 7 中运行它时,字体大小是如此之小。这是因为 Android 根据密度缩放字体大小。Nexus 7 的密度低于 Nexus One,Android 缩小了字体大小。如何调整与屏幕大小成比例的字体大小?

4

3 回答 3

3

使用 XML 资源。在一个 XML 资源文件(我通常称之为“dimens.xml”)中,定义一个维度资源,称为font_size. 在文件夹“values-normal”和“values-large”中创建一个“dimens.xml”文件。默认情况下将使用“values”中的字体大小,但大屏幕(如 Nexus 7)将使用“values-large”中的大小。如果您想明确支持 10" 平板电脑,也可以在 'values-xlarge' 中定义它。

可以使用 XMLtextSize="@dimen/font_size"和使用tv.setTextSize(getResources().getDimension(R.dimen.font_size)).

您的 dimens.xml 文件应如下所示:

<resources>
   <dimen name="font_size">14sp</dimen>
</resources>
于 2012-11-15T17:38:09.433 回答
1

如果您使用 dimens.xml 方法会更好,并在文件夹中为手机和平板电脑生成不同的版本:

res/values/dimens.xml -> 默认尺寸

res/values-normal/dimens.xml -> 手机尺寸

res/values-large/dimens.xml -> 对于平板电脑尺寸(请注意为字体大小设置更大的值,可能填充,等等......

于 2012-11-15T17:41:25.993 回答
0

您可以从您的dimes.xml

在 中定义一个维度dimens.xml。例如:

<dimen name="my_text_size">14sp</dimen>

然后在您的代码中使用它:

tv.setTextSize(getResources().getDimension(R.dimen.my_text_size));
于 2012-11-15T17:34:29.490 回答