Advertisement
  1. Code
  2. Coding Fundamentals
  3. Tools

Android Desde Cero: Comprendiendo Vistas y Grupo de Vistas

Scroll to top
This post is part of a series called Android From Scratch.
Android From Scratch: Common UI Design Patterns
Android From Scratch: Activities and Fragments

Spanish (Español) translation by Viviana Brito (you can also view the original English article)

Dejando de lado un puñado de casos extremos, cada aplicación que construyas tiene algo de interfaz de usuario. En Android, esto se logra a través del uso de objetos Vistas o View y Grupo de Vistas o ViewGroup En este artículo, aprenderás sobre algunos de los componentes View disponibles para la visualización de contenido y se le demostrará la forma en que son utilizados.

1. Vistas/Views

Los objetos View son empleados específicamente para dibujar contenido en la pantalla del dispositivo Android. Mientras que puedes instanciar una View en tu código Java, la forma más sencilla de usarlo, es a través de un archivo de diseño XML. Puedes ver un ejemplo de esto al crear una aplicación sencilla de Hola Mundo en Android Studio. El archivo layout está nombrado como activity_main.xml, y luce de esta forma.

1
<TextView
2
    android:id="@+id/hello_world"
3
    android:layout_width="wrap_content"
4
    android:layout_height="wrap_content"
5
    android:text="Hello World!" />

El ejemplo anterior, muestra un tipo de View que será visualizada en la pantalla. Los atributos layout_width y layout_height establecen que View debería sólo tomar el espacio que sea necesario en la pantalla para visualizar el texto "¡Hola Mundo!" El atributo id es la manera en que se puede hacer referencia a View en tu código Java como se muestra a continuación:

1
setContentView(R.layout.activity_main);
2
TextView textView = (TextView) findViewById(R.id.hello_world);

Si bien puedes establecer atributos para una Vista o View en XML, también puedes cambiar los atributos en tu código Java, como cambiar el texto del TextView anterior.

1
textView.setText("This is a changed View");

El código anterior actualiza el texto del TextView a "Esta es una Vista modificada". Cuando ejecutes la app aparecerá algo así.

Example of an Updated TextViewExample of an Updated TextViewExample of an Updated TextView

Ahora que ya sabes cómo trabajar con objetos básicos View, vamos a revisar algunos de los diferentes tipos que tienes disponible en el Android SDK.

Visualización de Vistas

TextView

Esta es una View que empleamos en el ejemplo anterior. El trabajo principal del TextView es mostrar texto en la pantalla de una aplicación Android. Mientras que esto pueda parecer una tarea sencilla, la clase TextView contiene lógica compleja que permite visualizar el texto subrayado, hyperlinks, números de teléfono, emails, y otras funcionalidades útiles.

ImageView

Como implica su nombre, el ImageView es designado específicamente para mostrar imágenes en la pantalla. Esto se puede utilizar para la visualización de los recursos almacenados en la aplicación o para la visualización de imágenes que se descargan desde Internet.

Entrada y Controles

Algunos objetos View son utilizados para más que simplemente mostrar contenido a los usuarios. A veces necesitas recibir algún tipo de input o entrada para controlar tus aplicaciones. Afortunadamente, Android provee de varias subclases View específicamente para este propósito.

Button

La clase Button es uno de los controles más básicos disponibles en la app. Escucha los clicks del usuario y llama a un método en tu código, de forma que puedas responder apropiadamente.

Switch y CheckBox

Las clases Switch y CheckBox tienen un estado activo e inactivo entre los que pueden alternarse. Esto es útil para cambiar los ajustes en una app. Versiones compatibles con Material Design, están disponibles a través de AppCompat support library

EditText

Esta subclase View es una extensión de la clase TextView y permite a los usuarios actualizar el texto que figura a través de una entrada de teclado.

Adapter Based Views

Si bien cada uno de los ejemplos anteriores de View son elementos individuales, a veces deseas mostrar una colección de elementos. Estas clases View, requieren la utilización de un Adapter para manejar la manera en que se muestra la interfaz de usuario adecuada para cada elemento de una colección.

ListView

La clase ListView es utilizada para mostrar una colección de elementos en una View linear, de una sola columna y desplegable. Cada elemento individual puede ser seleccionado para visualizar más detalles o llevar a cabo una acción relacionada a ese elemento.

GridView

Similar a la clase ListView, la clase GridView emplea un Adapter y muestra los elementos en múltiples columnas en la pantalla.

Spinner

La última colección de la clase View sobre la que aprenderás en este tutorial, es la clase Spinner. Acepta un Adapter y enseña los elementos en un menú desplegable cuando el Spinner es presionado para que un elemento pueda ser seleccionado por el usuario.

2. Grupos de Vistas o View Groups

Un ViewGroup es un objeto invisible que se usa para contener otros objetos View y ViewGroup con el fin de organizar y controlar el layout de una pantalla. Los objetos ViewGroup son utilizados para la creación de una jerarquía de objetos View (ver abajo) de modo que pueda crear layouts más complejos. Dicho esto, cuánto más simple pueda mantenerse un layout, más simple será el desempeño.

Example of a View HierarchyExample of a View HierarchyExample of a View Hierarchy

Los objetos ViewGroup pueden ser instanciados de la misma manera que los elementos View estándar en XML o en código Java.

1
<?xml version="1.0" encoding="utf-8"?>
2
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
    android:layout_width="match_parent"
4
    android:layout_height="match_parent"
5
    android:orientation="vertical">
6
    <TextView
7
        android:id="@+id/hello_world"
8
        android:layout_width="wrap_content"
9
        android:layout_height="wrap_content"
10
        android:text="Hello World!" />
11
    <TextView
12
        android:id="@+id/hello_world_2"
13
        android:layout_width="wrap_content"
14
        android:layout_height="wrap_content"
15
        android:text="Hello World 2!" />
16
</LinearLayout>

Mientras todas las clases ViewGroup desempeñan una tarea similar, cada subclase ViewGroup existe para un propósito específico. Veamos algunos de ellos.

LinearLayout

LinearLayout existe para mostrar los elementos en un orden apilado, ya sea horizontal o verticalmente. Layouts lineares también pueden ser aplicados para asignar peso a los elementos View hijos, de forma tal que estén espaciados en la pantalla con una proporción determinada uno del otro.

RelativeLayout

Esta subclase ViewGroup, permite visualizar elementos en la pantalla relacionados entre sí, proporcionando más flexibilidad y libertad a la manera en que tu layout aparece, comparado con el LinearLayout

FrameLayout

Designado para mostrar sólo un View hijo por vez, el FrameLayout dibuja los elementos en una pila y provee una manera sencilla de visualizar un elemento en diferentes tipos de tamaños de pantalla.

ScrollView

Una extensión de FrameLayout, la clase ScrollView, maneja el despliegue de los objetos hijos en la pantalla.

ViewPager

Utilizado para administrar vistas múltiples mientras que sólo visualiza una a la vez, la clase ViewPager acepta un Adapter y permite a los usuarios deslizarse de izquierda a derecha para ver todos los elementos View disponibles.

RecyclerView

La clase RecyclerView es una subclase de ViewGroup que está relacionada a las clases ListView y GridView y que ha sido puesto a disposición por Google a través de RecyclerView support library para las versiones anteriores de Android. La clase RecyclerView requiere el uso de view holder design pattern para un eficiente reciclado del elemento y soporta el uso de un LayoutManager , un decorador, y un animador de elementos a fin de convertir a este componente en algo increíblemente flexible a costa de la simplicidad.

CoordinatorLayout

Recientemente agregada a la biblioteca de soporte de diseño, la clase CoordinatorLayout utiliza un objeto Behavior o de Comportamiento para determinar cómo los elementos View hijos deberían ser dispuestos y movidos mientras el usuario interactúa con tu app.

3. Vistas Personalizadas/Custom Views

Mientras que existe una amplia variedad de clases View y ViewGroup para que apliques a tus apps, a veces deseas crear algo nuevo que se adapte a tus necesidades. En este caso, puedes crear una nueva clase Java que extienda ya sea View o ViewGroup, dependiendo de lo que necesitas. El acto de crear una nueva subclase View personalizada, está más allá del alcance de este artículo, pero puedes encontrar más información aquí: Envato Tuts+ tutorial.

Conclusión

En este tutorial, has aprendido sobre algunos de los componentes más básicos de Android, layouts y vistas. Teniendo en cuenta cuán fundamentales son estos componentes para Android, continuamente aprenderás cosas nuevas sobre ellos al trabajar con la plataforma Android y encontrarás nuevas maneras de hacer cosas increíbles aplicándolas en tus proyectos.

¡Sé el primero en conocer las nuevas traducciones–sigue @tutsplus_es en Twitter!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.