2012-01-07 20 views
4

私は自分のアプリにスペイン語とフランス語を追加しましたが、文言の中にはスペイン語と英語の方が長くなっています。 values-es/string.xmlファイルにアクセスしたときにtextsizeを変更するにはどうすればいいですか?異なる言語のロケールでtextSizeを変更する

答えて

0

レイアウトには別のレイアウトファイルを指定する必要があります。 Androidがvalues-es/string.xmlから取得すると、別のlayout-es/yourfile.xmlがロードされます。そのレイアウトファイルは、ビューにテーマ、スタイル、またはテキストサイズを指定できます。

5

この目的のためにリソースファイルdimens.xmlを使用できます。あなたの場合は、res/values-es/dimens.xmlというファイルを作成し、可能であれば-frバージョンのファイルを作成することもできます。デフォルト値はres/values/dimens.xml(具体的には、res/values-en/dimens.xml)で指定できます。

例developer.android.comにMore Resource Types sectionからつかん:

<?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> 

dimens.xmlは、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); 

あり(カスタムビューを使用して)そのバウンディングボックスの「フィット」にのTextViewのテキストサイズを縮小するために反復/再帰的プロセスを使用するように、ここでのソリューションもありますが、私は上記のだと思います将来的にさらに多くの言語を追加することを検討している場合は、より堅牢なアプローチです。

0

上記の説明は正しいものですが、その方法を完全には説明していません。

Androidスタジオでプロジェクトを開くと、このプロジェクトは自動的に "Android"モードで表示されます。 Android Studioの左上にある[Android]タブをクリックし、「プロジェクト」を選択する必要があります。次に、 "アプリ> src> main> res"に移動する必要があります。次にを右クリックし、 "res"フォルダを右クリックし、表示されるメニューから "新規> Androidリソースディレクトリ"を選択します。ダイアログボックスが表示され、ディレクトリ名に:の値-esと入力し、OKをクリックします。

これは、すべてのスペイン語ロケール値のフォルダを作成します。そして、あなたはなどdimens.xmlstring.xmlをcolor.xmlを、...作成するには、この値-ESフォルダを右クリックしをすることができます。スペイン語のロケールが電話で選択されるたびに使用されるファイル。

グラフィカルユーザーインターフェイスを使用してスペイン語ロケール用のstring.xmlファイルを既に作成している場合、そこに行くと、string.xmlファイルを含むvalues-esフォルダは既にプロジェクトに存在します。この場合、の値-esフォルダを右クリックして、dimens.xmlファイルをスペイン語ロケール用に作成する必要があります。

関連する問題