font android typeface

android - material design 2 font



Usa la fuente Roboto en la aplicación con un nivel de API mínimo 14 (1)

Tengo una aplicación cuyo nivel de API mínimo es 14. ¿Tengo razón al pensar que todos los dispositivos compatibles deberían tener la fuente Roboto instalada por defecto? Si configuro una fuente textView para Roboto o Roboto Light, parece que está predeterminada al tipo de letra sans normal.

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


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

No, no hay otra manera de hacer esto para API 11 <.

Normalmente creo un TextView personalizado para la tipografía de 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 puedes usarlo en tus Layouts así:

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

Por supuesto que puede crear un diseño TextView. Una para Pre HC, una para HC y superior (Tendrá que hacer uso del diseño y las carpetas layout-v11). Ahora puede usar la etiqueta <include> para incluir TextView en su diseño. Solo tienes que hacer esto usa esto entonces:

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 de forma nativa 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