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.
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:
- app:glowRadius : se usa para configurar el radio de brillo [valor predeterminado 60f]
- 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