我已经为我的应用程序添加了西班牙语和法语,但是在西班牙语中有些词汇比英语长。当访问values-es/string.xml文件时如何更改文本大小?
dimens.xml
资源文件来实现这个目的。在你的情况下,你可能需要创建一个名为res/values-es/dimens.xml
的文件,并且可能还需要一个-fr
版本。你可以在res/values/dimens.xml
(或者如果你想更加具体的话,在res/values-en/dimens.xml
)中指定默认值。<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="textview_height">25dp</dimen>
<dimen name="textview_width">150dp</dimen>
<dimen name="ball_radius">30dp</dimen>
<dimen name="font_size">16sp</dimen>
</resources>
在xml中应用
<TextView
android:layout_height="@dimen/textview_height"
android:layout_width="@dimen/textview_width"
android:textSize="@dimen/font_size"/>
或者在代码中
float fontSize = getResources().getDimension(R.dimen.font_size);
在SO上也有一些解决方案,使用迭代/递归过程来缩小TextView的文本大小以'适应'其边界框(使用自定义视图),但我认为上面的方法更加健壮,特别是如果您考虑将来添加更多语言。