android - font - roboto fuente google
Cómo usar la fuente Roboto en el proyecto android (5)
https://www.google.com/design/spec/resources/roboto-noto-fonts.html y descomprime el archivo zip de la fuente
Roboto
Cree una carpeta de
assets
en su proyecto si aún no tiene una. Supongo que está utilizando Android Studio, así es como lo hace.Cree un nuevo directorio en la carpeta de activos, asígnele el nombre de
font
.Abra su archivo descomprimido y copie el estilo de fuente que desee. Su carpeta de fuentes se verá así:
Ahora puedes usar esta fuente en cualquier parte de tu aplicación de esta manera:
Typeface roboto = Typeface.createFromAsset(context.getAssets(),
"font/Roboto-Bold.ttf"); //use this.getAssets if you are calling from an Activity
txtView.setTypeface(roboto);
Esta pregunta ya tiene una respuesta aquí:
He desarrollado un proyecto de Android. En este proyecto, la fuente de texto por defecto es android: sans.
Ahora quiero reemplazar la fuente de texto predeterminada por la fuente roboto para todo mi proyecto.
¿Cómo puedo hacer esto?
Puede descargar la fuente Roboto desde aquí: https://www.google.com/design/spec/resources/roboto-noto-fonts.html .
Puedes hacerlo de forma convencional usando TypeFace
, como esto:
Typeface typeface = Typeface.createFromAsset(getAssets(), fontName);
textView.setTypeface(typeface);
Nota: Lo anterior deberá hacerse en cada Activity
.
Alternativamente, si, por ejemplo, desea aplicar la fuente Roboto a todos los TextView''s
en su aplicación, deberá crear su propio widget que amplíe TextView
.
Hay una manera simple de hacer esto. Siga los pasos de esta respuesta en SO: https://.com/a/9199258/450534 (apoyos completos a leocadiotine para la solución. Lo he usado antes y funciona como un encanto)
EDITAR: piense en your_namespace
como un marcador para que le dé un nombre de su elección. Por ejemplo, al integrar Admob en XML, uso xmlns:ads
. Puedes usar, por ejemplo: xmlns:font
o algo descriptivo.
En cuanto a lo que significa custom.ttf , es básicamente el archivo de fuente con su extensión lo que necesita copiar en su carpeta de Assets
. Por ejemplo, si está utilizando ROBOTO-REGULAR.TTF , reemplace custom.ttf con ROBOTO-REGULAR.TTF . Usando este ejemplo, el código completo debería tener este aspecto:
<your.package.widget.TypefacedTextView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:font="http://schemas.android.com/apk/res/your.package"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Custom fonts in XML are easy"
android:textColor="#FFF"
android:textSize="14dip"
font:typeface="ROBOTO-REGULAR.TTF" />
Puedes hacer esto fácilmente usando Typerlib .
Esta biblioteca resume la complejidad de agregar un recurso de fuente en su proyecto y reciclar esas fuentes creadas recientemente para maximizar el rendimiento de su aplicación.
Agrega esto a tu build.gradle
dependencies {
compile ''com.elmargomez.typer:typerlib:1.0.0''
}
A continuación, puede utilizar la fuente por
TextView txtView1 = (TextView) findViewById(R.id.yourTxtView1);
TextView txtView2 = (TextView) findViewById(R.id.yourTxtView2);
TextView txtView3 = (TextView) findViewById(R.id.yourTxtView3);
TextView txtView4 = (TextView) findViewById(R.id.yourTxtView4);
txtView1.setTypeface(Typer.set(yourContext).getFont(Font.ROBOTO_REGULAR));
txtView2.setTypeface(Typer.set(yourContext).getFont(Font.ROBOTO_CONDENSED_ITALIC));
txtView3.setTypeface(Typer.set(yourContext).getFont(Font.ROBOTO_THIN));
txtView4.setTypeface(Typer.set(yourContext).getFont(Font.ROBOTO_BOLD));
Incluye todas las fuentes actuales en Roboto, como:
Font.ROBOTO_MEDIUM
Font.ROBOTO_REGULAR
etc.
Para ver todas las fuentes disponibles, use Android Studio Auto complete después de la clase Fuente presionando Ctrl + espacio .
Una observación más para el uso de la función Typeface.createFromAsset()
. Cuando tuve muchas llamadas, impactó significativamente el tiempo de inflado. Para superar este problema, creamos una instancia única de Typeface
como esta
public static Typeface getTypeFace() {
if (fromAsset == null) {
fromAsset = Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Medium.ttf");
}
return fromAsset;
}
txtView = (TextView) findViewById(R.id.txtView);
Typeface myTypeface = Typeface.createFromAsset(
this.getAssets(),
"font/Robot.otf");
txtView.setTypeface(myTypeface);