2016-05-06 17 views
-1

Können unterschiedliche Texte für dieselbe Zeichenfolge und Sprache in verschiedenen Bildschirmauflösungen verwendet werden?Unterschiedliche Ressourcen für die gleiche Sprache, aber unterschiedliche Bildschirmauflösung

Beispiel: Nehmen Sie das Wort Abbrechen, das in Deutsch ist Abbrechen. Wäre es möglich, Abbrechen in höheren Bildschirmdichten wie xxhdpi und dem reduzierten Wort Abbrech zu verwenden. für den Rest?

Ich habe versucht, zwei Sprachdateien mit dem gleichen Namen und der gleichen Zeichenfolge in den Ordnern zu definieren: Werte-de und Werte-de-xxhdpi, aber das funktioniert nicht, weil die Sprache Vorrang und all Handys verwendet die gleiche Definition, in diesem Fall die in definierten Werte-de-xxhdpi überschreibt die Werte in Werte-de.

Antwort

2

Sie können dimens.xml Ressourcen verwenden. Erstellen Sie beispielsweise eine Datei res/values-de/dimens.xml für Deutsch und res/values-fr/dimens.xml für Frankreich.

In dimens.xml

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

In Ihrem Layout.xml

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

Mai dieses hilft

EDIT:

String Bliebene auf dem Bildschirm-Auflösung:

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

Danke, aber mein Problem ist nicht mit verschiedenen Sprachen, aber mit der gleichen Sprache in unterschiedlichen Auflösungen. Ich möchte zwei verschiedene Werte für die gleiche Zeichenfolge/Sprache abhängig von der Bildschirmauflösung des Geräts verwenden. –

+0

Oh okay. Ich denke, das ist nur per Code möglich. Erstellen Sie den gleichen String für mehrere Auflösungen und setzen Sie ihn mit 'getResources(). GetDisplayMetrics()' – Oli