Utilice la fuente Roboto en la aplicación con un nivel mínimo de API 14

Tengo una aplicación cuyo nivel mínimo de API es 14. ¿Estoy en lo cierto al pensar que todos los dispositivos compatibles deben tener la fuente Roboto instalada de manera predeterminada? Si configuro una fuente textView para Roboto o Roboto Light, parece que el tipo de letra sans normal es el predeterminado.

¿Hay alguna manera de usar Roboto sin incluir la fuente Roboto como un activo?

¿Hay alguna manera de usar Roboto sin incluir la fuente Roboto como un activo?

No, no hay otra forma de hacerlo para API 11 < .

Normalmente creo un TextView personalizado para la tipografía 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); } } 

Ahora puede usarlo en sus diseños de esta manera:

  android:layout_width="..." android:layout_height="..." [...]  

Por supuesto, puedes crear un diseño de TextView. Uno para Pre HC, uno para HC y superior (Tendrá que hacer uso de las carpetas de diseño y diseño-v11). Ahora puede usar la etiqueta para incluir TextView en su Diseño. Solo tienes que hacer esto usa esto luego:

 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); } 

Editar:

Puedes usar Roboto nativamente desde Android 4.1+ de esta manera:

 android:fontFamily="sans-serif" // roboto regular android:fontFamily="sans-serif-light" // roboto light android:fontFamily="sans-serif-condensed" // roboto condensed