Cómo utilizar la fuente de Roboto en android Project
He desarrollado un proyecto androide. En este proyecto, la fuente de texto predeterminada es android: sans.
Ahora quiero reemplazar la fuente de texto predeterminada a la fuente roboto para todo mi proyecto.
- Android: añadir helvetica neue fuente en la aplicación
- Cómo aumentar el tamaño de la fuente NumberPicker Android 6.0?
- Cómo establecer una fuente personalizada en el título de ActionBar?
- Cómo mostrar las fuentes de idioma Sindhi
- Fuente Hindi con API de nivel 15 (también conocido como Android 4.0.2)
¿Cómo puedo hacer esto?
- Tipo de fuente no funciona
- Android: agrega fuentes personalizadas al sistema
- Android: Problemas de renderización de fuentes con .ttf> 3 MB
- ¿Cómo agregar fuentes para diferentes pesos de fuente para el proyecto reactivo-androide?
- ¿Qué fuentes están instaladas de forma predeterminada en Android?
- Fuentes personalizadas, puntos suspensivos en MultiLine TextViews, glifos y glitches
- Cómo obtener el contexto en getView del adaptador para listview
- Cómo mostrar las fuentes Unicode de Malayalam en la vista web de Android
Puede descargar la fuente de Roboto desde aquí: https://www.google.com/design/spec/resources/roboto-noto-fonts.html .
Puedes hacerlo de la manera convencional usando TypeFace
, así:
Typeface typeface = Typeface.createFromAsset(getAssets(), fontName); textView.setTypeface(typeface);
Nota: Lo anterior tendrá que ser hecho en cada Activity
.
Si, por ejemplo, desea aplicar la fuente Roboto a todos los TextView's
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://stackoverflow.com/a/9199258/450534 (accesorios completos a la leocadiotina para la solución. Lo he usado antes y funciona como un encanto)
EDIT: Piense en your_namespace
como un marcador para que usted pueda darle un nombre de su elección. Por ejemplo, al integrar Admob en XML, uso xmlns:ads
. Puede utilizar, por ejemplo: xmlns:font
o algo descriptivo.
En cuanto a lo que significa la costumbre.ttf , es básicamente el archivo de fuentes con su extensión que usted necesita para copiar en su carpeta de Assets
. Por ejemplo, si está utilizando ROBOTO-REGULAR.TTF , reemplace el custom.ttf por ROBOTO-REGULAR.TTF . Utilizando este ejemplo, todo el código debería verse así:
<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" />
-
Descargar y descomprimir el archivo zip de la fuente
Roboto
-
Cree una carpeta de
assets
en su proyecto si no tiene uno ya. Estoy asumiendo que estás usando Android Studio, así es como hacerlo. -
Cree un nuevo directorio en la carpeta de activos, nombre de la
font
. -
Abra el archivo descomprimido y copie el estilo de fuente de su elección. Su carpeta de fuentes debe tener este aspecto:
Ahora puedes usar esta fuente en cualquier parte de tu aplicación como esta:
Typeface roboto = Typeface.createFromAsset(context.getAssets(), "font/Roboto-Bold.ttf"); //use this.getAssets if you are calling from an Activity txtView.setTypeface(roboto);
txtView = (TextView) findViewById(R.id.txtView); Typeface myTypeface = Typeface.createFromAsset( this.getAssets(), "font/Robot.otf"); txtView.setTypeface(myTypeface);
Puede hacerlo fácilmente usando el Typerlib .
Esta biblioteca acumula la complejidad de agregar un recurso de fuente en su proyecto y recicla la fuente recientemente creada para maximizar la perfromance de su aplicación.
Añada esto a su build.gradle
dependencies { compile 'com.elmargomez.typer:typerlib:1.0.0' }
Entonces usted 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, utilice Android Studio Auto después de la clase Fuente pulsando 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 inflación. Para superar este problema, hemos creado una instancia singleton de Typeface
como este
public static Typeface getTypeFace() { if (fromAsset == null) { fromAsset = Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Medium.ttf"); } return fromAsset; }
- TimerTask vs Thread.sleep vs Handler postDelayed – más preciso para llamar a la función cada N milisegundos?
- Registro de Receptor de Difusión en Manifiesto vs. Actividad