Lesen Sie die Schriftgröße in den Einstellungen
Diese Frage ist fast dublicate von Android-App: wie zu Lesen, die Schriftgröße unter Einstellungen? ich die Antwort Lesen von CommonsWare, die Punkte zu verwenden Settings.System.FONT_SCALE
. Also schrieb ich diese paar Zeilen:
float scale = -66.6f;
try {
scale = android.provider.Settings.System.getFloat(getContentResolver(),
android.provider.Settings.System.FONT_SCALE);
} catch(SettingNotFoundException e) {
Log.e(getClass().getSimpleName(), "Error: ", e);
}
Toast.makeText(this, "scale=" + scale, Toast.LENGTH_LONG).show();
Mein problem ist, dass ich immer die SettingNotFoundException
ich bin mit einem Android-4.2.2-Gerät. Durch die Art und Weise, dass ich code in ein onCreate
Rückruf eines Activity
.
Ich auch gegoogelt für dieses problem und fand über 3 Seiten, die nutzt den gleichen code. Einige Besondere Erlaubnis erforderlich? Ich habe versucht, auch die Genehmigung android.permission.WRITE_SETTINGS
ohne Erfolg.
hmm, ich bin mir nicht sicher, dass Sie brauchen, um diese zu Lesen. Nicht das system erledigt die Skalierung für Sie, solange Sie verwenden sp-Einheiten ??
Ebenso sicher, aber ich habe einige grafische bugs, die ich beheben müssen mit diesem Skalierungsfaktor.
Ebenso sicher, aber ich habe einige grafische bugs, die ich beheben müssen mit diesem Skalierungsfaktor.
InformationsquelleAutor rekire | 2013-05-14
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nur in der source-code von
Einstellungen.System
diese Funktion:Es ist jedoch die
FONT_SCALE
im Einsatz, so dass ich überprüft, dassConfiguration
Klasse, in der die Dokumentation Punkte zugetResources().getConfiguration()
. Also ich kann fix meinen code mit:InformationsquelleAutor rekire
Können Sie festlegen, system-schriftart entsprechend der schriftart-Skala.
Beispiel: Für große Schrift-Maßstab ist 2,0 dann können Sie wie folgt gesetzt.
InformationsquelleAutor Hardik Bambhania
Hinzufügen "float def" param an das Ende der
public static float getFloat(ContentResolver cr, String name, float def)
Beispiel:
scale = android.Anbieter.Einstellungen.System.getFloat(getActivity().getContentResolver(),
android.Anbieter.Einstellungen.System.FONT_SCALE, 1f);
InformationsquelleAutor Andrej
Könnten Sie wahrscheinlich verwenden
getResources().getDisplayMetrics().scaledDensity
- http://developer.android.com/reference/android/util/DisplayMetrics.html#scaledDensity1.33
. Ich habe es ausprobiert, bevor ich fand, dassFONT_SCALE
.Welches Gerät haben Sie? Raten einem Nexus 7?
Ja das Nexus 7, ist das ein bekannter Fehler?
FontScale ist eine Benutzer-Einstellung für die Verfügbarkeit und die hat nichts zu tun mit der hardware.
InformationsquelleAutor FunkTheMonk