¿Cómo aumentar/disminuir la tasa de desvanecimiento de FadingTextView en Android?

Requisito previo: cómo agregar una animación de TextView que se desvanece en Android

TextView es el componente básico de los componentes de la interfaz de usuario. Se utiliza para configurar el texto y mostrarlo al usuario. Es un componente muy básico y se usa mucho. Un TextView Fading es un TextView que cambia su contenido automáticamente cada pocos segundos. Entonces, la pregunta ahora es por qué aumentar/disminuir la tasa de desvanecimiento de FadingTextView. Esto depende completamente de los elementos que se muestran en la pantalla. Esto está relacionado con la estética de la aplicación. Se podría usar una vista de texto que se desvanece más lentamente con un texto gris o negro para mostrar ciertos mensajes. De manera similar, se podría usar una vista de texto que se desvanece más rápido con un texto rojo para mostrar mensajes de advertencia o error. Esto depende completamente de lo que el desarrollador desee mostrar. A través de este artículo, implementamos un modelo para demostrar cómo funciona esta funcionalidad. Uno puede hacer uso de esta funcionalidad en consecuencia. kotlin

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 Kotlin como lenguaje de programación.

Paso 2: Agregar dependencia al archivo build.gradle

Cuando la configuración esté lista, vaya a la aplicación build.gradle y agregue la siguiente dependencia. Sincroniza el proyecto ahora.

implementación ‘com.tomer:fadingtextview:2.5’

Paso 3: trabajar con el archivo activity_main.xml

A continuación, vaya al archivo activity_main.xml , que representa la interfaz de usuario del proyecto. Hemos agregado un elemento FadingTextView para mostrar el texto que se desvanece y un botón, por lo que cada vez que el usuario haga clic en el botón, la tasa de desvanecimiento aumentará/disminuirá en consecuencia. 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">
    
    <!--FadingTextView element-->
    <com.tomer.fadingtextview.FadingTextView
    android:id="@+id/fadingTextView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:gravity="center"
    android:textSize="30sp"
    />
    
    <!--A button to increase or Decrease fading rate-->  
     <Button
    android:id="@+id/btnStart"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_below="@id/fadingTextView"
    android:text="Faster or Slower"/>
    
</RelativeLayout>

Paso 4: trabajar con el archivo MainActivity.kt

Finalmente, vaya al archivo MainActivity.kt y consulte el siguiente código. MainActivity.kt

Para aumentar la tasa de desvanecimiento (más rápido):

Kotlin

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.tomer.fadingtextview.FadingTextView
import java.util.concurrent.TimeUnit
  
class MainActivity : AppCompatActivity() {
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
         
        // Strings to display in the FadingTextView
        val texts = arrayOf("Welcome!", "Hello", "Geek")
  
        // Declaring FadingTextView
        val ftv = findViewById<FadingTextView>(R.id.fadingTextView)
          
        // Set the text array to FadingTextView (ftv)
        ftv.setTexts(texts)
          
        var timeout:Long = 1000
  
        // setTimeout(Long or Double value only, TimeUnit)
        // TimeUnits: HOURS, MINUTES, SECONDS, MILLISECONDS
          // For every 1000 Milliseconds, the text in FTV will change
        ftv.setTimeout(timeout,TimeUnit.MILLISECONDS)
          
        // btn to increase the change rate or make things faster.
        val btn = findViewById<Button>(R.id.btnStart)
          
        btn.setOnClickListener{
            
          // Setting timeout to the half of the current
          timeout /= 2
            
            ftv.setTimeout(timeout,TimeUnit.MILLISECONDS)
              
            // Toast that displays current Timeout
            Toast.makeText(applicationContext,"Changes every $timeout Milliseconds", Toast.LENGTH_SHORT).show()
        } 
    }
}

Salida: ejecutar en el emulador

Para disminuir la tasa de desvanecimiento (más lento):

Kotlin

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.tomer.fadingtextview.FadingTextView
import java.util.concurrent.TimeUnit
  
class MainActivity : AppCompatActivity() {
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
         
        // Strings to display in the FadingTextView
        val texts = arrayOf("Welcome!", "Hello", "Geek")
  
        // Declaring FadingTextView
        val ftv = findViewById<FadingTextView>(R.id.fadingTextView)
          
        // Set the text array to FadingTextView (ftv)
        ftv.setTexts(texts)
          
        var timeout:Long = 1
  
        // setTimeout(Long or Double value only, TimeUnit)
        // TimeUnits: HOURS, MINUTES, SECONDS, MILLISECONDS
          // For every 1 Milliseconds, the text in FTV will change
        ftv.setTimeout(timeout,TimeUnit.MILLISECONDS)
          
        // btn to decrease the change rate or make things slower.
        val btn = findViewById<Button>(R.id.btnStart)
          
        btn.setOnClickListener{
         // Setting timeout to twice of the current 
          timeout *= 2
            
            ftv.setTimeout(timeout,TimeUnit.MILLISECONDS)
              
            // Toast that displays current Timeout
            Toast.makeText(applicationContext,"Changes every $timeout Milliseconds", Toast.LENGTH_SHORT).show()
        }
    }
}

Salida: ejecutar en el emulador

Publicación traducida automáticamente

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