Deslizador automático de imágenes en Android con ejemplo

Auto Image Slider es uno de los componentes de interfaz de usuario más vistos en Android. Este tipo de control deslizante se ve principalmente dentro de las aplicaciones de los grandes sitios de comercio electrónico como Flipkart, Amazon y muchos más. Auto Image Slider se utiliza para representar datos en forma de diapositivas que cambian después de un intervalo de tiempo específico. En este artículo, veremos cómo crear un control deslizante automático de imágenes en Android. Usaremos la biblioteca SliderView para agregar este tipo de componente de interfaz de usuario en nuestra aplicación.  

Nota: También puede consultar Image Slider en Android usando ViewPager .

Ahora veremos la Implementación de este SliderView en Android. 

Ejemplo

qué

Auto Image Slider in Android

Implementación paso a paso

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: agregue la dependencia de la Vista deslizante en el archivo build.gradle

Navegue a los scripts de Gradle y luego al nivel build.gradle(Module). Agregue la siguiente línea en el archivo build.gradle en la sección de dependencias.

// vista de control deslizante de orden de dependencia

implementación ‘com.github.smarteist:autoimageslider:1.3.9’

// dependencia para cargar imagen desde url

implementación “com.github.bumptech.glide:glide:4.11.0”

Paso 3: agregue permiso de Internet en el archivo AndroidManifest.xml

Navegue a la aplicación > Manifiesto para abrir el archivo Manifiesto y agregue debajo de dos líneas.

<!–Permiso para internet–>

<usos-permiso android:name=”android.permission.INTERNET” />

<usos-permiso android:name=”android.permission.ACCESS_NETWORK_STATE” />

Paso 4: trabajar con el archivo activity_main.xml

Vaya al archivo activity_main.xml y consulte el siguiente código. A continuación se muestra el código para el archivo activity_main.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">
  
    <!--
    slideranimation duration is to set duration for transition between two slides
    sliderautocycledirection is to set animationbetween transition of your slides
    sliderindicator enables is used to display the indicators for slider
    slider indicator gravity is to set gravity for indicator gravity
    slider indicator margin is to set margin for indicator
    slider indicator orientation is used to add orientation for slider
    slider indicator padding is use to add padding to indicator
    slider indicator selected color is use to specify selected color
    and slider indicator unselected color is use to specify the color when the slider is unselected
    slider scroll time in sec is used to specify scrolling time in seconds
    -->
    <com.smarteist.autoimageslider.SliderView
        android:id="@+id/slider"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:layout_centerInParent="true"
        app:sliderAnimationDuration="600"
        app:sliderAutoCycleDirection="back_and_forth"
        app:sliderIndicatorAnimationDuration="600"
        app:sliderIndicatorEnabled="true"
        app:sliderIndicatorGravity="center_horizontal|bottom"
        app:sliderIndicatorMargin="15dp"
        app:sliderIndicatorOrientation="horizontal"
        app:sliderIndicatorPadding="3dp"
        app:sliderIndicatorRadius="2dp"
        app:sliderIndicatorSelectedColor="#5A5A5A"
        app:sliderIndicatorUnselectedColor="#FFF"
        app:sliderScrollTimeInSec="1" />
  
</RelativeLayout>

Paso 5: Cree una nueva clase Modal para almacenar datos

Navegue a aplicación > java > el nombre del paquete de su aplicación y luego haga clic con el botón derecho en él y Nuevo > Clase Java y nombre su clase Modelo como SliderData y debajo del código dentro de esa clase Java. SliderData.java

Java

public class SliderData {
  
    // image url is used to 
    // store the url of image
    private String imgUrl;
  
    // Constructor method.
    public SliderData(String imgUrl) {
        this.imgUrl = imgUrl;
    }
  
    // Getter method
    public String getImgUrl() {
        return imgUrl;
    }
  
    // Setter method
    public void setImgUrl(String imgUrl) {
        this.imgUrl = imgUrl;
    }
}

Paso 6: Cree un archivo XML para los elementos de SliderView 

Vaya a la aplicación > res > diseño > haga clic con el botón derecho en él y seleccione Nuevo > Archivo de recursos de diseño y luego nombre su archivo XML como slider_layout.xml . Después de crear este archivo, agregue el siguiente código.  

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
  
    <!--Image we will display is our slider view-->
    <ImageView
        android:id="@+id/myimage"
        android:layout_width="400dp"
        android:layout_height="300dp"
        android:layout_centerHorizontal="true"
        android:contentDescription="@string/app_name" />
  
</RelativeLayout>

Paso 7: Cree una clase de adaptador para configurar datos para cada elemento de nuestro SliderView

Navegue a aplicación > java > el nombre del paquete de su aplicación y luego haga clic con el botón derecho en él y Nuevo > Clase Java y nombre su clase como SliderAdapter y debajo del código dentro de esa clase Java. SliderAdapter.java

Java

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
  
import com.bumptech.glide.Glide;
import com.smarteist.autoimageslider.SliderViewAdapter;
  
import java.util.ArrayList;
import java.util.List;
  
public class SliderAdapter extends SliderViewAdapter<SliderAdapter.SliderAdapterViewHolder> {
      
    // list for storing urls of images.
    private final List<SliderData> mSliderItems;
      
    // Constructor
    public SliderAdapter(Context context, ArrayList<SliderData> sliderDataArrayList) {
        this.mSliderItems = sliderDataArrayList;
    }
  
    // We are inflating the slider_layout 
    // inside on Create View Holder method.
    @Override
    public SliderAdapterViewHolder onCreateViewHolder(ViewGroup parent) {
        View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.slider_layout, null);
        return new SliderAdapterViewHolder(inflate);
    }
  
    // Inside on bind view holder we will
    // set data to item of Slider View.
    @Override
    public void onBindViewHolder(SliderAdapterViewHolder viewHolder, final int position) {
  
        final SliderData sliderItem = mSliderItems.get(position);
  
        // Glide is use to load image
        // from url in your imageview.
        Glide.with(viewHolder.itemView)
                .load(sliderItem.getImgUrl())
                .fitCenter()
                .into(viewHolder.imageViewBackground);
    }
  
    // this method will return
    // the count of our list.
    @Override
    public int getCount() {
        return mSliderItems.size();
    }
  
    static class SliderAdapterViewHolder extends SliderViewAdapter.ViewHolder {
        // Adapter class for initializing 
        // the views of our slider view.
        View itemView;
        ImageView imageViewBackground;
  
        public SliderAdapterViewHolder(View itemView) {
            super(itemView);
            imageViewBackground = itemView.findViewById(R.id.myimage);
            this.itemView = itemView;
        }
    }
}

Paso 8: trabajar con el archivo MainActivity.java

Vaya al archivo MainActivity.java y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.java . Se agregan comentarios dentro del código para comprender el código con más detalle.

Java

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.smarteist.autoimageslider.SliderView;
import java.util.ArrayList;
  
public class MainActivity extends AppCompatActivity {
    // Urls of our images.
    String url1 = "https://www.geeksforgeeks.org/wp-content/uploads/gfg_200X200-1.png";
    String url2 = "https://qphs.fs.quoracdn.net/main-qimg-8e203d34a6a56345f86f1a92570557ba.webp";
    String url3 = "https://bizzbucket.co/wp-content/uploads/2020/08/Life-in-The-Metro-Blog-Title-22.png";
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
          
        // we are creating array list for storing our image urls.
        ArrayList<SliderData> sliderDataArrayList = new ArrayList<>();
          
        // initializing the slider view.
        SliderView sliderView = findViewById(R.id.slider);
          
        // adding the urls inside array list
        sliderDataArrayList.add(new SliderData(url1));
        sliderDataArrayList.add(new SliderData(url2));
        sliderDataArrayList.add(new SliderData(url3));
          
        // passing this array list inside our adapter class.
        SliderAdapter adapter = new SliderAdapter(this, sliderDataArrayList);
          
        // below method is used to set auto cycle direction in left to 
        // right direction you can change according to requirement.
        sliderView.setAutoCycleDirection(SliderView.LAYOUT_DIRECTION_LTR);
          
        // below method is used to 
        // setadapter to sliderview.
        sliderView.setSliderAdapter(adapter);
          
        // below method is use to set 
        // scroll time in seconds.
        sliderView.setScrollTimeInSec(3);
          
        // to set it scrollable automatically
        // we use below method.
        sliderView.setAutoCycle(true);
          
        // to start autocycle below method is used.
        sliderView.startAutoCycle();
    }
}

Producción: 

Mira el proyecto en este enlace: https://github.com/ChaitanyaMunje/GFGImageSlider

Publicación traducida automáticamente

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