使用不同的语言区域设置更改文本大小

时间:2012-01-07 01:28:56

标签: android eclipse

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

3 个答案:

答案 0 :(得分:9)

您可以使用dimens.xml资源文件来实现此目的。在您的情况下,您可能希望创建一个名为res/values-es/dimens.xml的文件,也可能是-fr版本。您可以在res/values/dimens.xml(或res/values-en/dimens.xml中指定默认值,如果您想更具体的话。)

从developer.android.com上的More Resource Types section获取的示例:

<强> 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的文本大小缩小到其边界框中“适合”(使用自定义视图),但我上面说的是更强大方法,特别是如果您考虑将来添加更多语言。

答案 1 :(得分:1)

以上解释是正确的,但他们并没有完全解释如何做到这一点。

当您在Android Studio中打开项目时,它会自动在&#34; Android &#34;中显示该项目。模式。你需要点击&#34; Android&#34;选项卡位于Android Studio的左上角,然后选择&#34; 项目&#34;。然后你需要进入&#34; app&gt; src&gt; main&gt; res &#34;。然后,您需要<&gt; res &#34; 右键单击。文件夹,然后从出现的菜单中选择&#34; 新&gt; Android资源目录&#34;。将出现一个对话框,对于目录名称:输入 values-es ,然后单击确定

这将为所有西班牙语语言环境值创建一个文件夹。然后,您可以右键单击在此 values-es 文件夹中创建 dimens.xml string.xml color.xml ,...等。在手机中选择西班牙语区域设置时将使用的文件。

如果您已经通过图形用户界面为西班牙语语言环境创建了一个string.xml文件,则当您去那里时,带有string.xml文件的values-es文件夹将已经在项目中。在这种情况下,您只需在 values-es 文件夹上右键单击,即可在此处为西班牙语区域设置创建 dimens.xml 文件

答案 2 :(得分:0)

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