IDIOMAS

Google-Translate-Chinese Google-Translate-Spanish to French Google-Translate-Spanish to German Google-Translate-Spanish to Japanese Google-Translate-Spanish to English Google-Translate-Spanish to Russian Google-Translate-Spanish to Portuguese Google-Translate-Spanish to Italian

miércoles, 11 de marzo de 2015

Como cambiar la FUENTE de nuestra aplicación Android en Android Studio

Si queremos cambiar la fuente por defecto con la que se diseña las App en Andrid Studio, tenemos que crear una carpeta ASSETS en la compilación de nuestra proyecto y alojar allí nuestra nueva fuente con la extensión .ttf.

En mi entrada de blog anterior explico cómo crearla:
 http://trucosandroidstudio.blogspot.com.es/2015/03/como-crear-las-carpetas-raw-y-assets.html ) 

He escogido la fuente MixBrush para el ejemplo con un texto "hola mundo".

Una vez creada la carpeta, haremos:

- botón derecho sobre ASSETS => NEW => crear nuevo DIRECTORY (directorio):





- nombrar el nuevo directorio con el nombre que queramos, por ejemplo font , y aceptamos:




- quedando así:





- una vez escogemos la fuente sólo hay que arrastrala desde la ventana origen ( puede ser la de descargas, una memoria usb, etc...) hasta la nueva carpeta directorio FONT y soltar:





- y aceptamos en ambos casos:








- quedando así:





Ahora que ya tenemos la carpeta ASSETS con el nuevo directorio FONT y nuestro archivo de .ttf en ella, vamos con el ejemplo para un TEXTVIEW en nuestra ACTIVITY principal ( activity_main.xml  por defecto ) donde escribiremos HOLA MUNDO, con la fuente por defecto:





Ahora desde nuestro MAIN_ACTIVITY de código java, vamos a escribir este código:


public class MainActivity extends ActionBarActivity {

    TextView TV;     //desclaramos nuestroTEXTVIEW de nuestro LAYOUT 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TV = (TextView)findViewById(R.id.TV_id);   //definimos en ONCREATE donde esta por                                                                                                     //medio de un ID

        String font_path = "font/MixBrush.ttf";  //definimos un STRING con el valor PATH ( o ruta por                                                                                    //donde tiene que buscar ) de nuetra fuente

        Typeface TF = Typeface.createFromAsset(getAssets(),font_path);

                               //llamanos a la CLASS TYPEFACE y la definimos con un CREATE desde                                                    //ASSETS con la ruta STRING

        TV.setTypeface(TF);   //finalmente aplicamos TYPEFACE al TEXTVIEW

    }


Aquí el resultado en pantalla en el emulador:





Saludos a tod@s y gracias por visitarme!




24 comentarios:

  1. Muchas gracias por el tuto Sandocal XL.....he intentado seguirlo pero sin éxito.....no se me modifica el texto por default....te agradeceria una ayuda sobre que es lo que puede estar ocurriendo utilizo el AS 1.1.0 y mi entrada para el codigo es esta:

    public class Splash extends Activity {

    TextView TV;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);

    TV=(TextView)findViewById(R.id.my_text);
    String font_path="fonts/tooney.ttf";
    Typeface TF = Typeface.createFromAsset(getAssets(), font_path);
    TV.setTypeface(TF);



    }
    }

    de antemano gracias por la respuesta!!!...

    ResponderEliminar
    Respuestas
    1. Hola Camil. Te da algún error de compilación cuando envías el proyecto al emulador? Has probado con otra fuente?

      Eliminar
  2. Ehhh genio!!.....gracias por tu ayuda!!....el error lo cometía yo!!!...ya q soy nuevo en esto creí q el tipo de fuente ya debía cambiar en la imagen q viene en el AS y no estaba usando el emulador!!!.....perdon por las molestias y otra vez gracias!!!.....

    ResponderEliminar
  3. Ayuda !!!!!

    Mi problema es a la hora de pegar el código en MAIN_ACTIVITY, en cuanto lo pego todo el código me sale con errores y por mas que intento no puedo :/

    ResponderEliminar
    Respuestas
    1. cual es tu problema exactamente? Pega el codigo aqui para ver

      Eliminar
    2. package com.andrea.guia;

      import android.graphics.Typeface;
      import android.support.v7.app.ActionBarActivity;
      import android.support.v7.app.AppCompatActivity;
      import android.os.Bundle;
      import android.widget.TextView;

      public class Actividad_Principal extends AppCompatActivity {


      TextView TV; //desclaramos nuestroTEXTVIEW de nuestro LAYOUT

      @Override
      protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_actividad__principal.xml);

      TV = (TextView)findViewById(R.id.TV_id); //definimos en ONCREATE donde esta por //medio de un ID

      String font_path = "font/MixBrush.ttf"; //definimos un STRING con el valor PATH ( o ruta por //donde tiene que buscar ) de nuetra fuente

      Typeface TF = Typeface.createFromAsset(getAssets(),font_path);

      //llamanos a la CLASS TYPEFACE y la definimos con un CREATE desde //ASSETS con la ruta STRING

      TV.setTypeface(TF); //finalmente aplicamos TYPEFACE al TEXTVIEW

      }

      Eliminar
    3. Quita todos los comentarios que van después de // y puede que el nombre de la actividad no sea el mismo (public class Actividad_Principal extends AppCompatActivity )

      Eliminar
    4. Me puedes decir en donde puedo descargar fuentes de letras para android studio xfavor

      Eliminar
  4. hola que tal tendras alguna forma de setear las fuentes de typefaces por otras personalizadas ?

    ResponderEliminar
  5. hola que tal tendras alguna forma de setear las fuentes de typefaces por otras personalizadas ?

    ResponderEliminar
  6. Hola, me parece que sólo puedes utilizar un grupo de fuentes limitada. Puedes buscar más info en la página oficial de desarrolladores. Saludos

    ResponderEliminar
  7. Hola, me parece que sólo puedes utilizar un grupo de fuentes limitada. Puedes buscar más info en la página oficial de desarrolladores. Saludos

    ResponderEliminar
  8. hola, y si tengo varios TexView y Botones como lo hago para generalizar mi fuente. O debo cambiar uno por uno..... Agradesería que hayuden...

    ResponderEliminar
    Respuestas
    1. Hay que asignar la fuente a cada widget: .setTypeface(TF)----- Saludos

      Eliminar
  9. La letra tiene que ser negra o mediante código java puede cambiarse el color?

    ResponderEliminar
  10. Buenas, he intentado seguir tus pasos, pero siempre me da error, me dice que no está permitido en el prologo y no entiendo por qué, no sé cómo arreglarlo. Si alguien sabe le agradecería bastante que me ayudara.

    Muchas gracias de antemano

    ResponderEliminar
    Respuestas
    1. No todas la fuentes son posibles. Hay que busca las compatibles con android

      Eliminar
  11. buenas tardes alguien que me ayude es que el codigo no funciona

    ResponderEliminar
    Respuestas
    1. No todas la fuentes son posibles. Hay que busca las compatibles con android

      Eliminar
  12. Buenos dias, quiero saber si hay alguna forma de cambiar la fuente desde un estilo o algo parecido sin necesidad de hacerlo individual

    Excelente explicación

    ResponderEliminar
  13. Ya tengo la fuente pero quiero que todos los txt's se cambien de fuente como lo puedo hacer?
    Gracias

    ResponderEliminar
  14. Al fin encontré algo que me funciona ¡Muchas gracias! :D

    ResponderEliminar