Lire la taille de la police dans les paramètres
Cette question est une question presque dublicate de Application Android: comment lire la Taille de la Police dans les Paramètres? j'ai lu la réponse de CommonsWare qui points à utiliser Settings.System.FONT_SCALE
. J'ai donc écrit ces quelques lignes:
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();
Mon problème est que j'ai toujours le SettingNotFoundException
je suis sur un Android 4.2.2 appareil. Au fait, j'ai ce code est dans une onCreate
de rappel d'un Activity
.
J'ai aussi cherché sur google ce problème et trouvé sur 3 sites qui utilise le même code. Certains autorisation spéciale requise? J'ai essayé aussi la permission android.permission.WRITE_SETTINGS
sans succès.
source d'informationauteur rekire
Vous devez vous connecter pour publier un commentaire.
Je viens de trouver dans le code source de
Paramètres.Système
cette fonction:Cependant, il est à la
FONT_SCALE
dans l'utilisation donc j'ai vérifié pour queConfiguration
classe où la documentation points degetResources().getConfiguration()
. Donc je pouvait corriger mon code à l'aide de:Vous pouvez définir la police du système selon la police de l'échelle.
Exemple: Pour les énormes police de l'échelle est de 2,0 puis vous pouvez définir comme suit.
Ajouter "float def" param à la fin de la
public static float getFloat(ContentResolver cr, String nom, float def)
Exemple:
échelle = android.fournisseur de.Les paramètres.Système.getFloat(getActivity().getContentResolver(),
android.fournisseur de.Les paramètres.Système.FONT_SCALE, 1f);
Vous pourriez probablement utiliser
getResources().getDisplayMetrics().scaledDensity
- http://developer.android.com/reference/android/util/DisplayMetrics.html#scaledDensity