使用不同的语言区域设置更改textSize

Kev*_*n M 6 eclipse android

我已经在我的应用程序中添加了西班牙语和法语,但是一些措辞比西班牙语更长,然后是英语.如何在访问values-es/string.xml文件时更改textsize

MH.*_*MH. 9

您可以将dimens.xml资源文件用于此目的.在您的情况下,您可能想要创建一个名为的文件res/values-es/dimens.xml,也可能是一个-fr版本.您可以指定默认值res/values/dimens.xml(或者res/values-en/dimens.xml,如果您想更具体).

从developer.android.com上的" 更多资源类型"部分获取的示例:

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> 
Run Code Online (Sandbox Code Playgroud)

在xml中应用

<TextView
    android:layout_height="@dimen/textview_height"
    android:layout_width="@dimen/textview_width"
    android:textSize="@dimen/font_size"/>
Run Code Online (Sandbox Code Playgroud)

或者在代码中

float fontSize = getResources().getDimension(R.dimen.font_size);
Run Code Online (Sandbox Code Playgroud)

SO上也有解决方案,使用迭代/递归过程将TextView的文本大小缩小到其边界框中"适合"(使用自定义视图),但我上面说的是一种更强大的方法,尤其是如果您考虑将来添加更多语言.


Spi*_*idy 0

您需要在layout-es 中指定不同的布局文件。这样,当 Android 从values-es/string.xml 中提取时,它将加载不同的layout-es/yourfile.xml。然后,该布局文件可以在视图上指定主题、样式或文本大小。