web-dev-qa-db-fra.com

Utiliser la police Roboto dans l'application avec un niveau d'API minimum 14

J'ai une application dont le niveau d'API minimum est de 14. Ai-je raison de penser que tous les appareils compatibles devraient avoir la police Roboto installée par défaut? Si je mets une police textView sur Roboto ou Roboto Light, elle semble être par défaut la police sans normale.

Existe-t-il un moyen d'utiliser Roboto sans inclure la police Roboto en tant qu'actif?

19
Milo

Existe-t-il un moyen d'utiliser Roboto sans inclure la police Roboto en tant qu'actif?

Non, il n'y a pas d'autre moyen de le faire pour l'API 11 <.

Je crée généralement un TextView personnalisé pour la police Robot:

public class TextView_Roboto extends TextView {

        public TextView_Roboto(Context context, AttributeSet attrs, int defStyle) {
                super(context, attrs, defStyle);
                createFont();
        }

        public TextView_Roboto(Context context, AttributeSet attrs) {
                super(context, attrs);
                createFont();
        }

        public TextView_Roboto(Context context) {
                super(context);
                createFont();
        }

        public void createFont() {
                Typeface font = Typeface.createFromAsset(getContext().getAssets(), "robo_font.ttf");
                setTypeface(font);
        }
}

Vous pouvez maintenant l'utiliser dans vos mises en page comme ceci:

<com.my.package.TextView_Roboto>
  Android:layout_width="..."
  Android:layout_height="..."
  [...]
</com.my.package.TextView_Roboto>

Bien sûr, vous pouvez créer une mise en page TextView. Un pour Pre HC, un pour HC et au-dessus (vous devrez utiliser les dossiers layout et layout-v11). Vous pouvez maintenant utiliser le <include> tag pour inclure TextView dans votre mise en page. Il vous suffit de faire ceci, utilisez ceci ensuite:

if (Android.os.Build.VERSION.SDK_INT >= 11){
    TextView txt = (TextView) findViewById(R.id.myTxtView);
}
else{
    TextView_Roboto txt = (TextView_Roboto) findViewById(R.id.myTxtView);
}

Modifier:

Vous pouvez utiliser Roboto en mode natif à partir de Android 4.1+ comme ceci:

Android:fontFamily="sans-serif"           // roboto regular
Android:fontFamily="sans-serif-light"     // roboto light
Android:fontFamily="sans-serif-condensed" // roboto condensed
58
Ahmad