web-dev-qa-db-fra.com

Augmenter la taille de la police en fonction de la taille du périphérique

J'avais prévu d'utiliser une taille de police différente pour l'affichage de texte sur une taille de périphérique différente afin de rendre les lettres lisibles. J'ai déjà décidé de ne pas utiliser différentes mises en page pour différents appareils et j'ai construit une disposition commune qui conviendrait à tous les appareils. Maintenant, le seul problème est la taille du texte. 

Des questions :

  1. J'aimerais avoir vos suggestions techniques sur la façon de modifier la taille de la police en fonction de la taille (la taille physique) du périphérique. 

  2. Comment dériver la taille de la police en fonction du rapport de format.

  3. Des failles dans l'utilisation de ce type d'approche?

XML pour la vue texte

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:background="#ffffff"
    Android:orientation="vertical">

    <TextView
        Android:id="@+id/tvValue4"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:text="I planned to use different font size for the textview on different device size so as to make the letters legible. I have already decided not to use different layouts for different devices and built a common layout to fit in all the devices. Now the only problem is on the text size."
        Android:textColor="#000000"
        Android:textSize="15sp" />

</LinearLayout>

Merci d'avance

24
iappmaker

Oui, cette approche est imparfaite. Les appareils Android ont des tailles différentes, mais ils peuvent également avoir des densités très différentes.

enter image description here

Vous devriez simplement suivre la conception Android meilleures pratiques

enter image description here

Ils sont en fait très bien pensé. Pourquoi voudriez-vous réinventer la roue? 

25
Stephan Branczyk

Essayez ceci, Ajoutez cet attribut dans votre XML. Il ajustera la taille du texte en fonction de la taille de l'écran, essayez-le.

 style="@Android:style/TextAppearance.DeviceDefault.Medium"
18
MuraliGanesan

Pour les tailles de police, utilisez les pixels d'échelle (sp). Android redimensionnera la taille de la police en fonction de la densité de l'appareil. Les messages ci-dessus ont une meilleure explication et le raisonnement.

6
bostan
    String s= "hello";
    TextView tv= (TextView) findViewById(R.id.tv);
    Spannable span = new SpannableString(s);
    span.setSpan(new RelativeSizeSpan(5f), 0, span.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    tv.setText(span);

En fonction de la taille de l'écran, changez 5f en tout ce que vous voulez.

http://developer.Android.com/guide/practices/screens_support.html . Consultez le sujet sous la rubrique Meilleures pratiques.

2
Raghunandan

pour ce numéro, j'utilise la bibliothèque suivante dans de nombreux projets et je pense que c'est fantastique. Pas besoin de s'inquiéter des écrans. Mais encore une fois, vous devez créer des mises en page distinctes pour les onglets.

https://github.com/intuit/sdp

0
amar

Android a construit des installations pour this- dp et sp. dp est le pixel de l'appareil. C'est fondamentalement 1dp = 1/160th de pouce. Cela vous permet de spécifier la hauteur de la police en taille réelle. Sp est une échelle de pixels. Cette taille varie en fonction de la taille de police par défaut, afin qu'un utilisateur puisse redimensionner sa police système et que votre application la corresponde. Pratique pour les personnes ayant des problèmes de vue qui ont besoin d'un gros texte, tout en ne prenant pas l'immobilier à l'écran pour les autres.

Vous devriez probablement utiliser l'un ou l'autre de ceux-ci.

0
Gabe Sechan