Trabajando con TextView en Android

TextView en Android es uno de los elementos básicos e importantes de la interfaz de usuario. Esto juega un papel muy importante en la experiencia de la interfaz de usuario y depende de cómo se muestre la información al usuario. Este widget de TextView en Android se puede dinamizar en varios contextos. Por ejemplo, si se debe resaltar la parte importante de la información, entonces la substring que contiene debe estar en cursiva o en negrita, un escenario más es donde si la información en TextView contiene un hipervínculo que dirige a un URL web en particular, entonces tiene que incluir un hipervínculo y debe estar subrayado. Eche un vistazo a la siguiente lista e imagen para tener una idea de la discusión general.

  1. Formateo de TextView
  2. Tamaño del TextView
  3. Cambio de estilo de texto
  4. Cambiar el color del texto
  5. Sombra de texto
  6. Espaciado entre letras y mayúsculas
  7. Agregar iconos para TextView
  8. Formato HTML de TextView

Working With the TextView in Android

Implementación paso a paso

Paso 1: crear un proyecto de actividad vacío

Paso 2: trabajar con el archivo activity_main.xml

  • El diseño principal y uno, que incluye solo un TextView y tan variado como avanzamos, discutimos los diversos contextos.
  • Para implementar la interfaz de usuario de la actividad, invoque el siguiente código dentro del archivo activity_main.xml.

XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    tools:ignore="HardcodedText">
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="GeeksforGeeks"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
 
</androidx.constraintlayout.widget.ConstraintLayout>

Interfaz de usuario de salida:

1. Formatear el TextView

Android ofrece principalmente 3 tipos de tipografías

  • normal
  • sans
  • serif
  • monoespaciado
  • Los cuatro tipos de caras anteriores deben invocarse bajo el atributo » typeFace» de TextView en XML.
  • Invoque el siguiente código y observe el atributo » typeFace» de TextView.

XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    tools:ignore="HardcodedText">
 
    <!--the below typeFace attribute has to
         invoked with values mentioned-->
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="GeeksforGeeks"
        android:textSize="32sp"
 
        android:typeface="normal"
 
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
 
</androidx.constraintlayout.widget.ConstraintLayout>

Producción:

2. Tamaño del TextView

  • Esta función de la vista de texto confirma qué tipo de contenido se debe mostrar al usuario. Por ejemplo, si hay un encabezado, hay 6 tipos de encabezados que se pueden implementar. Mire la siguiente imagen que contiene las pautas para el tamaño de la vista de texto y el estilo de la vista de texto recomendado por Material Design de Google. .

  • El atributo que se utiliza para cambiar el tamaño de la vista de texto en Android es «textSize».
  • Consulte el siguiente código y su salida para una mejor comprensión.

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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"
    android:orientation="vertical"
    tools:context=".MainActivity"
    tools:ignore="HardcodedText">
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="64dp"
 
        android:textSize="48sp"
 
        android:text="H3 Heading" />
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="32dp"
 
        android:textSize="32sp"
 
        android:text="H6 Heading" />
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="32dp"
 
        android:textSize="16sp"
 
        android:text="Body 1" />
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="32dp"
 
        android:textSize="14sp"
 
        android:text="Body 2" />
 
 
</LinearLayout>

Producción: 

3. Cambio de estilo de texto

En Android existen básicamente tres estilos de texto:

  • Audaz
  • Itálico
  • Normal
  • El estilo de texto del texto en Android se puede implementar usando el atributo «textStyle».
  • También se pueden implementar varios estilos de texto mediante el operador de canalización. Ejemplo “android:textStyle=”negrita|cursiva”.
  • Para implementar los diversos estilos de texto, consulte el siguiente código y su salida.

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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"
    tools:ignore="HardcodedText">
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="32dp"
        android:orientation="vertical">
 
        <!--the below textStyle attribute has to
            invoked with values mentioned-->
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="GeeksforGeeks"
             
            android:textStyle="italic"
 
            android:textSize="32sp" />
 
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="32dp"
            android:text="GeeksforGeeks"
                   
            android:textStyle="bold"
 
            android:textSize="32sp" />
 
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="32dp"
            android:text="GeeksforGeeks"
                   
            android:textStyle="normal"
 
            android:textSize="32sp" />
 
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="32dp"
            android:text="GeeksforGeeks"
                   
            android:textStyle="bold|italic"
 
            android:textSize="32sp" />
 
    </LinearLayout>
 
</LinearLayout>

Producción:

4. Cambiar el color del texto

  • El color del texto también debe cambiar según el cambio en el contexto de la información que se muestra al usuario.
  • Por ejemplo, si hay un texto de advertencia, debe ser de color rojo y para el texto deshabilitado, la opacidad o el color del texto debe ser grisáceo. Para cambiar el color del texto se utiliza el atributo “textColor” .
  • Android también ofrece los colores de texto predefinidos, que se pueden implementar usando «@android:color/yourColor» como valor para el «textColor» . Aquí el valor puede ser un código hexadecimal o los colores predefinidos que ofrece el android.
  • Consulte el siguiente código y su salida para una mejor comprensión.

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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"
    android:orientation="vertical"
    tools:context=".MainActivity"
    tools:ignore="HardcodedText">
 
    <!--the value predefined by android-->
    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="64dp"
        android:text="Warning Message"
        android:textColor="#B00020"
        android:textSize="32sp" />
 
    <!--the value predefined by android-->
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="16dp"
        android:text="Disabled Text"
 
        android:textColor="@android:color/darker_gray"
 
        android:textSize="32sp" />
 
    <!--the value is hex code-->
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="16dp"
        android:text="GeeksforGeeks"
 
        android:textColor="#000000"
 
        android:textSize="32sp" />
 
</LinearLayout>

Producción: 

5. Sombra de texto

  • La sombra para el texto también se puede dar en Android. Los atributos requeridos para la vista de texto sombreado son:

android:shadowDx=”integer_value” -> que decide la distancia del texto desde su sombra con respecto al eje x, si el integer_value es positivo, la sombra es positiva en el eje x y viceversa.

android:shadowDy=”integer_value” -> que decide la distancia del texto desde su sombra con respecto al eje y, si el integer_value es positivo, la sombra está en el negativo del eje y y viceversa.

android:shadowRadius=”integer_value” -> que decide la cantidad de sombra que se le dará a la vista de texto.

  • Consulte el siguiente código y su salida para una mejor comprensión.

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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"
    android:orientation="vertical"
    tools:context=".MainActivity"
    tools:ignore="HardcodedText">
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="16dp"
        android:shadowColor="@color/green_500"
        android:shadowDx="4"
        android:shadowDy="4"
        android:shadowRadius="10"
        android:text="GeeksforGeeks"
        android:textColor="#000000"
        android:textSize="32sp"
        tools:targetApi="ice_cream_sandwich" />
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="16dp"
        android:padding="8dp"
        android:shadowColor="@color/green_500"
        android:shadowDx="-15"
        android:shadowDy="4"
        android:shadowRadius="10"
        android:text="GeeksforGeeks"
        android:textColor="#000000"
        android:textSize="32sp"
        tools:targetApi="ice_cream_sandwich" />
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="16dp"
        android:shadowColor="@color/green_500"
        android:shadowDx="4"
        android:shadowDy="-15"
        android:shadowRadius="10"
        android:text="GeeksforGeeks"
        android:textColor="#000000"
        android:textSize="32sp"
        tools:targetApi="ice_cream_sandwich" />
 
</LinearLayout>

Producción:

6. Espaciado entre letras y mayúsculas

  • El espaciado entre letras y las letras mayúsculas son algunas de las propiedades importantes de la vista de texto en android.
  • Para el texto de los diseños de botones y pestañas, el texto debe estar en letras mayúsculas recomendado por Google Material Design.
  • El espaciado entre letras también debe mantenerse de acuerdo con el escenario.

android:letterSpacing=”floatingTypeValue” -> Este atributo se usa para dar el espacio entre cada una de las letras.

android:textAllCaps=”trueOrfalse” -> Este atributo decide si todas las letras deben estar en mayúsculas o no.

  • Consulte el siguiente código y su salida para una mejor comprensión.

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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"
    android:orientation="vertical"
    tools:context=".MainActivity"
    tools:ignore="HardcodedText">
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="64dp"
        android:letterSpacing="0.15"
        android:text="GeeksforGeeks"
        android:textColor="@android:color/black"
        android:textSize="32sp" />
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="64dp"
        android:text="GeeksforGeeks"
        android:textAllCaps="true"
        android:textColor="@android:color/black"
        android:textSize="32sp" />
 
</LinearLayout>

Producción:

7. Agregar iconos para TextView

  • Android también permite agregar dibujables con las vistas de texto.
  • Hay tres posiciones para agregar los iconos para TextView. Son un principio, un final, un tope y un fondo.
  • Consulte el siguiente código y su salida para saber cómo agregar los íconos dibujables a la Vista de texto.

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity"
    tools:ignore="HardcodedText">
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="64dp"
        android:drawableStart="@drawable/ic_lappy"
        android:padding="4dp"
        android:text="GeeksforGeeks"
        android:textColor="@android:color/black"
        android:textSize="32sp" />
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="64dp"
        android:drawableEnd="@drawable/ic_lappy"
        android:padding="4dp"
        android:text="GeeksforGeeks"
        android:textColor="@android:color/black"
        android:textSize="32sp" />
 
</LinearLayout>

Producción: 

8. Formato HTML de TextView

  • En Android, la string se puede formatear usando la clase Html.
  • Consulte el siguiente ejemplo para una mejor comprensión.
  • Agrega el siguiente código dentro de activity_main.xml.

XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
 
    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:focusable="auto"
        android:textSize="32sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
 
</androidx.constraintlayout.widget.ConstraintLayout>
  • Ahora agregue el siguiente código dentro del archivo MainActivity.kt.

Kotlin

import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.text.Html
import android.text.method.LinkMovementMethod
import android.widget.TextView
import androidx.annotation.RequiresApi
 
class MainActivity : AppCompatActivity() {
    @RequiresApi(Build.VERSION_CODES.N)
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        val text: TextView = findViewById(R.id.text)
        val s: String =
            "This is <i>italic</i> <b>bold</b> <u>underlined</u> <br>Goto <a href='https://www.geeksforgeeks.org'>GeegksforGeeks</a>"
 
        // movementMethod which traverses the links in the text buffer
        text.movementMethod = LinkMovementMethod.getInstance()
 
        text.text = Html.fromHtml(s, Html.FROM_HTML_MODE_COMPACT)
    }
}

Salida: ejecutar en el emulador

Publicación traducida automáticamente

Artículo escrito por adityamshidlyali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *