2016-05-06 18 views
-1

同じ文字列と言語に対して異なる画面解像度で異なるテキストを使用できますか?同じ言語で異なる画面解像度の異なるリソース

例: ドイツ語でAbbrechenという語句をキャンセルしてください。 xxhdpiのようなより高いスクリーン密度で、Abbrechenと縮小語Abbrechを使用することは可能でしょうか。残りの部分は

は、私は、同じ名前とフォルダ内の同じ文字列を持つ2つの言語ファイルを定義しようとしている:値・ド値・ド・xxhdpiを、しかし、言語が優先され、すべてのため、これが動作しませんモバイルは同じ定義を使用します。この場合、values-de-xxhdpiで定義されている値は、値-の値を上書きします。

答えて

2

dimens.xmlのリソースを使用できます。たとえば、ドイツ語の場合はres/values-de/dimens.xml、フランスの場合はres/values-fr/dimens.xmlというファイルを作成します。

dimens.xml あなたLayout.xmlで

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
    <dimen name="f_size">16sp</dimen> 
    </resources> 

<TextView 
    android:textSize="@dimen/f_size"/> 

ことがありますが、これは役立ちます

EDIT:

画面解像度に0

文字列の扶養:

float density = context.getResources().getDisplayMetrics().density; 
if (density >= 4.0) { 
    tv1.setText(getString(R.string.xxxhdpiXY)); 
    tv1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18); 
} 
if (density >= 3.0) { 
    tv1.setText(getString(R.string.xxhdpiXY)); 
    tv1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16); 
} 
if (density >= 2.0) { 
    tv1.setText(getString(R.string.xhdpiXY)); 
    tv1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15); 
} 
if (density >= 1.5) { 
    tv1.setText(getString(R.string.hdpiXY)); 
    tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14); 
} 
if (density >= 1.0) { 
    tv1.setText(getString(R.string.mhdpiXY)); 
    tv1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 13); 
} 
+0

ありがとう、私の問題は、異なる言語を持つが、異なる解像度で同じ言語ではありません。私はデバイスの画面解像度に応じて同じ文字列/言語の2つの異なる値を使用したいと思います。 –

+0

大丈夫です。私はこれがコードによってのみ可能だと思います。複数の解像度に対して同じ文字列を作成し、 'getResources()。getDisplayMetrics()'で設定します。 – Oli

関連する問題