19/03/2025
En el vasto universo del desarrollo de aplicaciones Android, la capacidad de mostrar información al usuario y permitirle interactuar con ella es fundamental. En el corazón de esta interacción textual se encuentran dos componentes esenciales: el TextView y el EditText. Si alguna vez te has preguntado cómo las aplicaciones muestran mensajes, etiquetas o campos de entrada de texto, estás a punto de descubrirlo. Estos dos elementos son la base para construir una interfaz de usuario (UI) intuitiva y funcional, y comprender su funcionamiento es un paso crucial para cualquier desarrollador Android.

El objetivo de este artículo es desglosar en profundidad qué son el TextView y el EditText, cómo se utilizan para mostrar y recolectar texto, y cómo puedes personalizarlos al máximo para que se adapten perfectamente al diseño y la funcionalidad de tus aplicaciones. Exploraremos desde su creación básica en archivos XML y de forma programática con Kotlin, hasta las numerosas propiedades que te permiten controlar cada aspecto de su apariencia y comportamiento. Prepárate para dominar estos componentes y hacer que tus aplicaciones cobren vida a través del texto.
- ¿Qué es un TextView en Android?
- Cómo Crear un TextView
- Propiedades Comunes de un TextView para su Decoración
- ¿Qué hace la propiedad android:textColor en un TextView?
- ¿Qué hace la propiedad android:inputType en un EditText?
- ¿Cómo Mostrar un Texto en Android Studio?
- Preguntas Frecuentes (FAQ)
- Conclusión
¿Qué es un TextView en Android?
Un TextView es un widget fundamental en el desarrollo de Android, diseñado específicamente para mostrar texto en la interfaz de usuario de una aplicación. Es el bloque de construcción más básico para cualquier elemento que necesite presentar información textual al usuario, ya sea una etiqueta simple, un párrafo de descripción, un encabezado o un mensaje dinámico.
La versatilidad del TextView es una de sus mayores fortalezas. Puede mostrar texto plano, texto formateado con negritas o cursivas, o incluso texto con diferentes estilos y colores. Los desarrolladores tienen un control exhaustivo sobre sus propiedades, lo que les permite personalizar el tamaño del texto, su color, su alineación, el relleno (padding) y los márgenes, entre muchas otras características. Esto lo convierte en una herramienta poderosa para adaptar el texto a cualquier necesidad de diseño XML.
Más allá de simplemente mostrar texto estático, el TextView también puede manejar enlaces clicables, lo que lo hace increíblemente útil para mostrar contenido dinámico y permitir la interacción del usuario. Por ejemplo, puedes configurarlo para que reconozca automáticamente URLs, direcciones de correo electrónico o números de teléfono, y permitir que el usuario interactúe con ellos directamente desde la aplicación. En resumen, el TextView es un componente indispensable en el diseño de la UI de Android para presentar cualquier tipo de información textual a los usuarios.
Cómo Crear un TextView
Existen dos métodos principales para crear y utilizar un TextView en tus aplicaciones Android: definiéndolo directamente en el archivo de diseño XML o creándolo de forma programática en tu código Kotlin (o Java).
Creación de un TextView a Través de XML
La forma más común y recomendada para crear un TextView es declararlo en tu archivo de diseño XML. Esto permite una clara separación entre el diseño de la interfaz de usuario y la lógica de tu aplicación. Aquí te mostramos un ejemplo básico de cómo se vería en un archivo activity_main.xml:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/myTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="¡Hola, Mundo!" android:textSize="24sp" android:layout_centerInParent="true"/> </RelativeLayout>
En este fragmento de código, hemos definido un TextView dentro de un RelativeLayout. Las propiedades clave que hemos utilizado son:
android:id: Un identificador único para elTextView, que te permitirá referenciarlo desde tu código Kotlin.android:layout_widthyandroid:layout_height: Definen el ancho y el alto delTextView.wrap_contentsignifica que el tamaño se ajustará al contenido del texto.android:text: El texto que se mostrará inicialmente en elTextView.android:textSize: El tamaño de la fuente, especificado en unidades de píxeles escalables (sp), lo cual es ideal para el tamaño del texto ya que se escala con la densidad de píxeles y la preferencia de tamaño de fuente del usuario.android:layout_centerInParent: Una propiedad delRelativeLayoutque centra elTextViewen su contenedor padre.
Una vez definido en XML, puedes acceder a este TextView desde tu código Kotlin para modificar su contenido o sus propiedades dinámicamente. Por ejemplo, en tu archivo MainActivity.kt:
import android.os.Bundle import android.widget.TextView import androidx.appcompat.app.AppCompatActivity class MainActivity: AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Referencia el TextView desde el layout val myTextView = findViewById<TextView>(R.id.myTextView) // Ahora puedes usar 'myTextView' para manipular el TextView myTextView.text = "¡Hola, Kotlin!" } }En este código, utilizamos findViewById<TextView>(R.id.myTextView) para obtener una referencia al TextView que definimos en el XML, y luego cambiamos su texto a "¡Hola, Kotlin!".
Creación de un TextView Programáticamente
Aunque la creación a través de XML es la más común, hay situaciones en las que necesitas crear TextViews de forma dinámica en tiempo de ejecución, por ejemplo, cuando el número de elementos no es fijo o cuando se generan en respuesta a ciertas acciones del usuario. Aquí te mostramos cómo crear un TextView programáticamente en Kotlin y añadirlo a un RelativeLayout:
import android.os.Bundle import android.widget.RelativeLayout import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import android.graphics.Color class MainActivity: AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Crear un RelativeLayout como layout padre val parentLayout = RelativeLayout(this) parentLayout.layoutParams = RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT ) // Crear un TextView val textView = TextView(this) textView.text = "¡Hola, TextView Creado Programáticamente!" textView.textSize = 24f textView.setTextColor(Color.BLACK) // Establecer parámetros de layout para el TextView val layoutParams = RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT ) layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT) textView.layoutParams = layoutParams // Añadir el TextView al layout padre parentLayout.addView(textView) // Establecer el layout padre como la vista de contenido setContentView(parentLayout) } }En este ejemplo, estamos creando tanto el RelativeLayout como el TextView dinámicamente. Configuramos propiedades como el texto, el tamaño del texto y el color del texto directamente en el código. Es importante notar que para establecer el color de forma programática, se utiliza la clase Color de Android o recursos de color definidos. Finalmente, el TextView se añade al RelativeLayout, y este último se establece como la vista de contenido de la actividad.
Propiedades Comunes de un TextView para su Decoración
El TextView ofrece una gran cantidad de propiedades que te permiten personalizar su apariencia y comportamiento. A continuación, exploramos algunas de las más utilizadas para "decorar" tu texto:
android:text: Define el texto que se mostrará en elTextView.android:textSize: Establece el tamaño del texto. Se recomienda usar la unidadsp(píxeles escalables) para asegurar una buena visualización en diferentes densidades de pantalla y configuraciones de usuario.android:textColor: Define el color del texto. Puede ser un código hexadecimal (ej.,#RRGGBBo#AARRGGBB), o una referencia a un color definido en tus recursos (ej.,@color/miColor).android:textStyle: Permite aplicar estilos comobold(negrita),italic(cursiva) o una combinación (bold|italic).android:typeface: Permite seleccionar un tipo de fuente predefinido por Android comosans,serifomonospace.android:fontFamily: Una propiedad más moderna quetypeface, permite especificar familias de fuentes más diversas, incluyendo fuentes personalizadas si las añades a tu proyecto.android:gravity: Controla la alineación del texto dentro del propioTextView. Las opciones incluyenstart,center,end,top,bottom, etc.android:layout_gravity: Controla la alineación delTextViewdentro de su contenedor padre.android:padding: Espacio entre el borde delTextViewy el texto interno. Puedes especificarpaddingLeft,paddingRight,paddingTop,paddingBottomopaddingHorizontalypaddingVertical.android:layout_margin: Espacio alrededor delTextView, separándolo de otros elementos en el layout. Similar al padding, puedes especificar márgenes individuales.android:background: Permite establecer un color o un recurso drawable como fondo delTextView.android:visibility: Controla si elTextViewes visible (visible), invisible pero ocupa espacio (invisible), o invisible y no ocupa espacio (gone).android:maxLines: Limita el número máximo de líneas de texto a mostrar.android:ellipsize: Cuando el texto excede el número de líneas o el ancho disponible, esta propiedad define cómo se truncará (ej.,endpara puntos suspensivos al final).android:singleLine: Si se establece entrue, el texto se mostrará en una sola línea, truncándose si es necesario. (Nota:maxLines="1"es la forma preferida en APIs más recientes).android:autoLink: Hace que ciertas partes del texto (URLs, correos electrónicos, números de teléfono, direcciones) sean automáticamente clicables. Puedes especificarweb,email,phone,mapoall.android:linksClickable: Si se establece entrue, permite que los enlaces generados porautoLinko Spans personalizados sean clicables.android:drawableLeft,drawableRight,drawableTop,drawableBottom(odrawableStartydrawableEndpara soporte RTL): Permiten añadir imágenes pequeñas junto al texto.android:drawablePadding: Espacio entre los drawables y el texto.android:shadowColor,android:shadowDx,android:shadowDy,android:shadowRadius: Permiten añadir una sombra al texto, controlando su color, desplazamiento en X e Y, y radio de desenfoque.android:textAllCaps: Si se establece entrue, el texto se mostrará en mayúsculas, sin importar cómo se haya escrito.android:letterSpacing: Ajusta el espaciado entre caracteres.android:textIsSelectable: Si se establece entrue, permite al usuario seleccionar y copiar el texto.android:lineSpacingExtrayandroid:lineSpacingMultiplier: Controlan el espaciado entre líneas del texto.
Estas propiedades ofrecen un control granular sobre la apariencia de tu texto, permitiéndote crear diseños atractivos y funcionales.
¿Qué hace la propiedad android:textColor en un TextView?
La propiedad android:textColor es una de las más directas y visualmente impactantes en un TextView. Su función principal es, como su nombre indica, definir el color del texto que se muestra dentro del componente. Es una herramienta esencial para el diseño visual, ya que el color del texto puede mejorar la legibilidad, resaltar información importante o simplemente ajustarse a la paleta de colores de tu aplicación.
Puedes asignar un color a android:textColor de varias maneras:
- Usando un valor hexadecimal: Esta es la forma más común para colores específicos. Un código hexadecimal de 6 dígitos (
#RRGGBB) define el rojo, verde y azul, mientras que uno de 8 dígitos (#AARRGGBB) incluye un componente alfa para la transparencia (AA). Por ejemplo,#000000es negro,#FF0000es rojo, y#80000000es un negro semitransparente. - Referenciando un recurso de color: Es una buena práctica definir tus colores en un archivo
colors.xml(ubicado enres/values/) y luego referenciarlos. Esto facilita la gestión de colores, permite la reutilización y es esencial para el soporte de temas y modos oscuro/claro. Por ejemplo, si tienes<color name="miColorPrincipal">#11209F</color>encolors.xml, puedes usarandroid:textColor="@color/miColorPrincipal". - Usando colores predefinidos de Android: Android proporciona algunos colores predefinidos a los que puedes acceder directamente, como
@android:color/blacko@android:color/white.
Además de colores sólidos, también es posible aplicar efectos de color más avanzados, como gradientes, de forma programática utilizando clases como LinearGradient. Esto te permite crear transiciones de color suaves a lo largo del texto, añadiendo un toque visual distintivo a tu UI.
¿Qué hace la propiedad android:inputType en un EditText?
Mientras que el TextView se encarga de mostrar texto, el EditText es una subclase de TextView diseñada específicamente para permitir al usuario introducir texto. La propiedad android:inputType es crucial para el EditText, ya que le indica al sistema qué tipo de entrada de texto se espera en ese campo. Esta información es utilizada por Android para mostrar el teclado de software (teclado en pantalla) más apropiado para el tipo de datos, optimizando la experiencia de entrada del usuario.

Por ejemplo, si esperas un número de teléfono, al establecer android:inputType="phone", el teclado virtual mostrará los dígitos numéricos y símbolos relevantes para teléfonos, en lugar del teclado alfanumérico completo. Si el campo es para una dirección de correo electrónico, android:inputType="textEmailAddress" presentará un teclado con el símbolo '@' y teclas de dominio comunes.
Algunos valores comunes para android:inputType incluyen:
text: Texto genérico.textPersonName: Nombre de una persona.number: Números (solo dígitos).numberDecimal: Números con punto decimal.numberSigned: Números con signo (+/-).phone: Números de teléfono.textPassword: Oculta la entrada del usuario (caracteres de contraseña).textEmailAddress: Dirección de correo electrónico.textUri: URL o URI.textMultiLine: Permite múltiples líneas de texto (cambia el botón de acción del teclado a un retorno de carro).
Además de especificar el tipo de teclado, android:inputType también puede combinarse con otros valores para habilitar comportamientos adicionales, como sugerencias de ortografía, autocorrección o capitalización automática. Por ejemplo:
android:inputType="textCapSentences|textAutoCorrect"
Esta combinación hará que el campo de texto capitalice la primera letra de cada oración y ofrezca corrección automática de errores ortográficos, ideal para campos de mensajes o notas.
Relacionado con android:inputType, también está la propiedad android:imeOptions. Esta propiedad te permite especificar la acción que se mostrará en el botón de la esquina inferior derecha del teclado de software (por ejemplo, "Listo", "Siguiente", "Enviar", "Buscar"). Esto mejora la usabilidad al indicar claramente al usuario cuál es la siguiente acción esperada después de introducir el texto.
Para campos de texto que requieren sugerencias de autocompletado (como una barra de búsqueda), puedes usar la subclase AutoCompleteTextView. Esta clase funciona junto con un Adapter que proporciona las sugerencias de texto a medida que el usuario escribe, mejorando la velocidad y precisión de la entrada.
¿Cómo Mostrar un Texto en Android Studio?
Mostrar texto en Android Studio, que es el entorno de desarrollo para aplicaciones Android, se logra principalmente utilizando el componente TextView. El proceso es bastante directo y sigue los principios que hemos cubierto anteriormente:
- Define el TextView en tu Layout XML: Abre el archivo XML de tu layout (por ejemplo,
activity_main.xml) y arrastra unTextViewdesde la paleta de componentes a tu diseño, o escríbelo directamente. Asegúrate de asignarle unandroid:idpara poder referenciarlo. Inicialmente, puedes establecer el texto conandroid:text="Tu texto aquí". - Configura sus Propiedades: Utiliza las propiedades XML (como
android:textSize,android:textColor,android:textStyle, etc.) para darle el estilo deseado directamente en el XML. - (Opcional) Modifica el Texto o Propiedades Programáticamente: Si necesitas cambiar el texto o cualquier otra propiedad del
TextViewdurante la ejecución de la aplicación (por ejemplo, en respuesta a un evento o datos cargados), puedes hacerlo desde tu código Kotlin (o Java) en la actividad o fragmento asociado. Primero, obtén una referencia alTextViewusando su ID (findViewById(R.id.tuId)), y luego accede a sus propiedades, comomyTextView.text = "Nuevo texto"omyTextView.setTextColor(Color.BLUE).
Este enfoque te permite tener un control completo sobre cómo se presenta el texto a tus usuarios, desde el diseño estático hasta las actualizaciones dinámicas en tiempo real.
Preguntas Frecuentes (FAQ)
¿Cuál es la diferencia principal entre TextView y EditText?
La diferencia fundamental radica en su propósito: un TextView está diseñado para mostrar texto al usuario, mientras que un EditText es una extensión del TextView que permite al usuario introducir y editar texto. Piensa en el TextView como una etiqueta o un párrafo de solo lectura, y en el EditText como un campo de formulario donde el usuario puede escribir.
¿Cómo puedo cambiar el color del texto en un TextView?
Puedes cambiar el color del texto de un TextView usando la propiedad android:textColor en tu archivo XML (ej., android:textColor="#FF0000" para rojo, o android:textColor="@color/miColorPersonalizado" si lo tienes definido en colors.xml). Programáticamente, puedes usar myTextView.setTextColor(Color.RED) o myTextView.setTextColor(resources.getColor(R.color.miColorPersonalizado, null)).
¿Se puede hacer que un TextView sea clicable?
Sí, un TextView puede ser clicable de varias maneras. Puedes establecer un OnClickListener en él, al igual que lo harías con un botón, para responder a toques del usuario. Además, puedes usar la propiedad android:autoLink para que el TextView detecte y haga clicables automáticamente URLs, direcciones de correo electrónico, números de teléfono, etc. Para enlaces más complejos o partes específicas del texto, puedes usar SpannableString con ClickableSpan programáticamente.
¿Qué significan las unidades 'sp' y 'dp' en el tamaño de texto y dimensiones?
dp (density-independent pixels) o píxeles independientes de la densidad, es una unidad de medida para dimensiones (ancho, alto, márgenes, padding) que se escala en función de la densidad de píxeles de la pantalla, asegurando que los elementos se vean de tamaño similar en diferentes dispositivos. sp (scale-independent pixels) o píxeles independientes de la escala, es similar a dp pero está específicamente diseñado para el tamaño del texto. Además de la densidad de la pantalla, sp también se escala según la preferencia de tamaño de fuente del usuario en la configuración del sistema, lo que mejora la accesibilidad. Siempre se recomienda usar sp para el tamaño del texto y dp para otras dimensiones.
¿Cómo puedo poner varias líneas de texto en un TextView?
Por defecto, si el texto es demasiado largo para una sola línea y el TextView tiene un ancho suficiente (wrap_content o match_parent), el texto se ajustará automáticamente a varias líneas. Si quieres forzar un número máximo de líneas, usa android:maxLines="N", donde N es el número deseado. Para saltos de línea manuales dentro del texto, puedes usar el carácter (nueva línea) en tu cadena de texto.
Conclusión
El TextView y el EditText son, sin duda, la columna vertebral de cualquier aplicación Android que necesite comunicar información textual o recoger entrada del usuario. Desde la simple visualización de un "Hola Mundo" hasta la construcción de formularios complejos y la interacción dinámica con el contenido, comprender y dominar sus propiedades y métodos de creación es esencial para cualquier desarrollador.
Hemos explorado cómo definir estos componentes tanto en el diseño XML estático como de forma programática para escenarios dinámicos, y hemos detallado una amplia gama de propiedades que te permiten personalizar cada aspecto visual y de comportamiento. Con esta base, tienes las herramientas necesarias para crear interfaces de usuario atractivas, funcionales y accesibles, haciendo que tus aplicaciones no solo se vean bien, sino que también ofrezcan una experiencia de usuario fluida y eficiente. ¡Sigue experimentando con estas herramientas y lleva tus habilidades de desarrollo Android al siguiente nivel!
Si quieres conocer otros artículos parecidos a Dominando el TextView y EditText en Android puedes visitar la categoría Cálculos.
