Resplandor TextView en Android

De forma predeterminada, Android no proporciona una forma sencilla de agregar el brillo a la vista de texto o cualquier otra vista, por lo que para que nuestra aplicación sea más atractiva y hermosa, podemos agregar el efecto de brillo a nuestro TextView . Para hacerlo, podemos usar muchas bibliotecas externas diferentes.

Glow TextView in Android Sample GIF

Acercarse

Paso 1: Crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación.

Paso 2: antes de ir a la sección de codificación, primero haga una tarea previa

Vaya a aplicación -> res -> valores -> archivo colors.xml y configure los colores para la aplicación.

XML

<?xml version="1.0" encoding="utf-8"?>
<resources>
  
    <color name="colorPrimary">#0F9D58</color>
    <color name="colorPrimaryDark">#0F9D58</color>
    <color name="colorAccent">#05af9b</color>
    <color name="white">#ffffff</color>
  
</resources>

Vaya a la sección Gradle Scripts > build.gradle (Módulo: aplicación) e importe las siguientes dependencias y haga clic en » sincronizar ahora » en la ventana emergente anterior. 

// Agregar vista de texto brillante

implementación ‘com.riningan.widget:glowtextview:1.0’

Paso 3: Diseño de la interfaz de usuario

En activity_main.xml, elimine la Vista de texto predeterminada y cambie el diseño a Diseño relativo y agregue GlowTextView y también agregamos 2 SeekBar para cambiar el color y el radio de la vista de texto brillante como se muestra a continuación. actividad_principal.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    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">
  
    <!-- Glow Text View -->
    <com.riningan.widget.GlowTextView
        android:id="@+id/glowTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:padding="40dp"
        android:text="Hello world :)"
        android:textColor="@android:color/white"
        android:textSize="40dp"
        app:glowColor="@color/Green"
        app:glowRadius="16dp" />
  
    <!-- simple seek bar to change the glow of the GlowTextView -->
    <SeekBar
        android:id="@+id/seekBarGlow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="80dp"
        android:max="100" />
  
    <!-- simple seek bar to change the color of the GlowTextView -->
    <SeekBar
        android:id="@+id/seekBarColor"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="120dp" />
  
</RelativeLayout>

Propiedades:

  1. app:glowRadius : se usa para configurar el radio de brillo [valor predeterminado 60f]
  2. app:glowColor : se utiliza para establecer el color de brillo [valor de color predeterminado BLANCO]

Paso 4: Parte de codificación

Abra el archivo MainActivity.java y dentro de la clase, creamos una array de enteros para almacenar diferentes colores (que usamos más tarde para cambiar el color de GlowTextView ) como se muestra a continuación.

Java

// array of different colors
int[] colors={Color.RED,Color.GREEN,Color.BLACK,Color.CYAN,Color.DKGRAY,Color.GRAY,Color.LTGRAY,Color.BLUE,Color.WHITE,Color.YELLOW,Color.MAGENTA};

Ahora dentro de onCreate() obtenga la referencia de GlowTextView y 2 SeekBar y establezca el máximo de color SeekBar en colors.length – 1 como se muestra a continuación.

Java

// getting Glow seekBar reference
SeekBar seekBarGlow =(SeekBar)findViewById(R.id.seekBarGlow);
  
// getting Color seekBar reference
SeekBar seekBarColor =(SeekBar)findViewById(R.id.seekBarColor);
  
// setting the max of seekBar to color length -1
seekBarColor.setMax(colors.length-1);
  
// getting glowTextView reference
GlowTextView  glowTextView =(GlowTextView)findViewById(R.id.glowTextView);

Ahora cree un SeekBarChangeListener de SeekBar y dentro de onProgressChanged (SeekBar seekBar, int progress, boolean fromUser) establezca el valor GlowColor y GlowRadius en el proceso como se muestra a continuación

Java

// seekBar change listener for changing the glow radius
seekBarGlow.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
           @Override
           public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
               // change the glow radius of the glow text view
               glowTextView.setGlowRadius(progress);
           }
  
           @Override
           public void onStartTrackingTouch(SeekBar seekBar) {
  
           }
  
           @Override
           public void onStopTrackingTouch(SeekBar seekBar) {
  
           }
       });
  
        // seekBar change listener for changing color
        seekBarColor.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                // change the glow color  of the glow text view
                glowTextView.setGlowColor(colors[progress]);
            }
  
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
  
            }
  
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
  
            }
});

A continuación se muestra el código completo del archivo MainActvity.java .

Java

import android.graphics.Color;
import android.os.Bundle;
import android.widget.SeekBar;
  
import androidx.appcompat.app.AppCompatActivity;
  
import com.riningan.widget.GlowTextView;
  
public class MainActivity extends AppCompatActivity {
  
    // array of different colors
    int[] colors = {Color.RED, Color.GREEN, Color.BLACK, Color.CYAN, Color.DKGRAY, Color.GRAY, Color.LTGRAY, Color.BLUE, Color.WHITE, Color.YELLOW, Color.MAGENTA};
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // getting Glow seekBar reference
        SeekBar seekBarGlow = (SeekBar) findViewById(R.id.seekBarGlow);
  
        // getting Color seekBar reference
        SeekBar seekBarColor = (SeekBar) findViewById(R.id.seekBarColor);
  
        // setting the max of seekBar to color length -1
        seekBarColor.setMax(colors.length - 1);
  
        // getting glowTextView reference
        GlowTextView glowTextView = (GlowTextView) findViewById(R.id.glowTextView);
  
  
        // seekBar change listener for changing the glow radius
        seekBarGlow.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                // change the glow radius of the glow text view
                glowTextView.setGlowRadius(progress);
            }
  
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
  
            }
  
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
  
            }
        });
  
        // seekBar change listener for changing color
        seekBarColor.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                // change the glow color  of the glow text view
                glowTextView.setGlowColor(colors[progress]);
            }
  
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
  
            }
  
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
  
            }
        });
    }
  
}

Producción:

Publicación traducida automáticamente

Artículo escrito por onlyklohan 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 *