Atom Blog

Como cambiar el tipo de letra (fuente) en una aplicacion movil para Android en Android Studio



En este post mostraremos como cambiar el tipo de fuente o tipo de letra de los Botones, EditText y TextView en una aplicacion movil en Android desde Android Studio. Esto es necesario cuando queremos crear una aplicacion movil personalizada y dar un toque unico.

Primero descargamos los tipos de fuentes que queramos utilizar en nuestra aplicacion movil en formato .tff. Yo los descargo de: https://fonts.google.com/ y los colocamos dentro de la carpeta "fonts" (si no existe la creamos) dentro de "assets" en la ruta de la aplicacion. Quedando de la siguiente manera: "main/assets/fonts".

Para este ejemplo definimos el archivo de interfaz de usuario prueba.xml:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:background="@color/white">

<Button
    android:id="@+id/boton_prueba"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Boton de prueba"
    android:textSize="24sp"
/>

<EditText
    android:id="@+id/edit_text_prueba"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="EditText de prueba"
    android:textSize="24sp"
/>

<TextView
    android:id="@+id/text_view_prueba"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView de prueba"
    android:textSize="24sp"
/>

</LinearLayout>



Luego, dentro del metodo onCreate() instanciamos los tipos de fuente agregados a la carpeta "fonts" previamente con la Clase "Typeface" y los definimos o seteamos para cada uno de los componentes del archivo prueba.xml definido anteriormente.


protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.prueba);

       Button nameButton = (Button) findViewById(R.id.boton_prueba);
       TextView nameTextView = (TextView) findViewById(R.id.text_view_prueba);
       EditText nameEditText = (EditText) findViewById(R.id.edit_text_prueba);
        
Typeface face = Typeface.createFromAsset(getAssets(), "fonts/JosefinSans-Regular.ttf");
Typeface faceBold = Typeface.createFromAsset(getAssets(), "fonts/JosefinSans-Bold.ttf");
Typeface faceSemiBold = Typeface.createFromAsset(getAssets(), "fonts/JosefinSans-SemiBold.ttf");

nameButton.setTypeface(face);
nameTextView.setTypeface(face);
        nameEditText.setTypeface(face);
}

Como alternar los colores de fondo en las filas de una lista (ListView) en Android



Cuando definimos listas en Android es muy comun encontrarnos con el problema de que los datos estan un poco desordenados y no se aprecian correctamente como deberian. Es por ello que algunos desarrolladores optan por colocar colores de fondo alternados a la lista para que la informacion se pueda apreciar de mejor manera.

Primero tendremos que definir la lista (ListView) en la interfaz de usuario .xml. Definiremos el archivo prueba.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:background="@color/white">

<ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/list_view_prueba"
 />

</LinearLayout>

Ahora en la clase respectiva se procede a instanciar la lista de la siguiente manera:

ListView listaPrueba = (ListView) findById(R.id.list_view_prueba);

Luego dentro del evento onCreate se realiza la colocacion de los colores de fondo de manera alternada:

protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.prueba);

        ListAdapter adaptador1 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayItems){
                @Override
                public View getView(int position, View convertView, ViewGroup parent) {
                     View view = super.getView(position,convertView,parent);
                    if (position %2 == 1) {
                        view.setBackgroundColor(Color.parseColor("#26CCCCCC"));
                    } else {
                        view.setBackgroundColor(Color.parseColor("#00FFFFFF"));
                    }
                    return view;
                }
            };
           listaPrueba.setAdapter(adaptador1);

}


donde:

arrayItems es el array de elementos que estaran en la lista, por ejemplo:

String[] arrayItems = new String[]{"item1", "item2", "item3", "item4", "item5"};


Una vez realizado todo el proceso tendremos una lista con colores de fondo alternados para una mejor visualizacion de la informacion.



Como habilitar los eventos de click o Click Listener de un Button, TextView o EditText en Android



En nuestras aplicaciones moviles es muy comun utilizar botones o campos de texto que permiten mostrar e ingresar datos para hacer mas interactiva la aplicacion.

Los eventos desencadenados al presionar o hacer click sobre alguno de estos componentes son manejados desde la logica de la aplicacion, es decir desde los archivos .java.

A continuacion mostraremos un boton, un editText y un textView con sus respectivos eventos click o Click Listeners.

Primero definimos los componentes de la aplicacion en la interfaz de usuario, es decir en los archivos .xml. En este caso definiremos el archivo prueba.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:background="@color/white">

<Button
    android:id="@+id/boton_prueba"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Boton de prueba"
    android:textSize="24sp"
/>

<EditText
    android:id="@+id/edit_text_prueba"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="EditText de prueba"
    android:textSize="24sp"
/>

<TextView
    android:id="@+id/text_view_prueba"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView de prueba"
    android:textSize="24sp"
/>

</LinearLayout>

Ahora en la clase que controladora de esta interfaz colocaremos el siguiente codigo dentro del evento onCreate():

protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.prueba);

       Button nameButton = (Button) findViewById(R.id.boton_prueba);
       TextView nameTextView = (TextView) findViewById(R.id.text_view_prueba);
       EditText nameEditText = (EditText) findViewById(R.id.edit_text_prueba);

       nameButton =.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                //CODE EVENTO CLICK
            }
       });

       nameTextView.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                //CODE EVENTO CLICK
            }
        });

        nameEditText.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                //CODE EVENTO CLICK
            }
        });

}


Listo!! ahora podremos ejecutar cualquier codigo al presionar algun componente sobre la interfaz de usuario de Android.

Como abrir una nueva ventana o clase (Activity) in Java Android


Cuando estamos empezando a programar aplicaciones moviles para Android necesitamos tener algunos conocimientos basicos de la programacion orientada a objetos y entender el funcionamiento de las clases .java (la logica de la aplicacion) y los archivos .xml (la interfaz de usuario).


En este post explicaremos la manera de abrir una nueva ventana, clase o Activity en Android. La manera de hacerlo en muy sencilla como se muestra en las siguientes lineas:

Definiremos un nueva Intent y a continuacion lo iniciaremos:

Intent intent = new Intent(Splash.this,Tutorial.class);
startActivity(intent);


donde:

Splash es la clase .java actual.
Tutorial es la clase .java que se quiere abrir.