Image Slider in Android using ViewPager (original) (raw)

Last Updated : 6 Aug, 2025

When talking about Android Apps, the first thing that comes to mind is variety. There are so many varieties of Android apps providing the user with beautiful dynamic UI. One such feature is to navigate in the Android Apps using the left and right swipes as opposed to clicking on Buttons. Not only does it look more simple and elegant but also provides ease of access to the user. There are many apps that use this swipe feature to swipe through different activities in the app. For example, the popular chatting app, Snapchat, uses it to swipe through lenses, chats, and stories. Here let's discuss how to create an Image Slider using ViewPager. ViewPager is a class in Java that is used in conjunction with Fragments. It is mostly used for designing the UI of the app. A sample GIF is given below to get an idea about what we are going to do in this article.

Steps for Creating Image Slider in Android

**Step 1: Create a New Project

To create a new project in Android Studio please refer to How to Create/Start a New Project in Android Studio. Note that select Java as the programming language.

**Step 2: Designing the UI

<androidx.viewpager.widget.ViewPager android:id="@+id/viewPagerMain" android:layout_width="match_parent" android:layout_height="match_parent"/>

`

<!-- image viwer to view the images -->
<ImageView
    android:id="@+id/imageViewMain"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

`

**Step 3: Coding Part

import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import androidx.annotation.NonNull; import androidx.viewpager.widget.PagerAdapter; import java.util.Objects;

class ViewPagerAdapter extends PagerAdapter {

// Context object 
Context context;

// Array of images
int[] images;

// Layout Inflater
LayoutInflater mLayoutInflater;


// Viewpager Constructor 
public ViewPagerAdapter(Context context, int[] images) {
    this.context = context;
    this.images = images;
    mLayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public int getCount() {
    // return the number of images
    return images.length;
}

@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
    return view == ((LinearLayout) object);
}

@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, final int position) {
    // inflating the item.xml 
    View itemView = mLayoutInflater.inflate(R.layout.item, container, false);

    // referencing the image view from the item.xml file 
    ImageView imageView = (ImageView) itemView.findViewById(R.id.imageViewMain);
    
    // setting the image in the imageView
    imageView.setImageResource(images[position]);

    // Adding the View
    Objects.requireNonNull(container).addView(itemView);

    return itemView;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    
    container.removeView((LinearLayout) object);
}

}

`

import androidx.appcompat.app.AppCompatActivity; import androidx.viewpager.widget.ViewPager; import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

// creating object of ViewPager
ViewPager mViewPager;

// images array
int[] images = {R.drawable.a1, R.drawable.a2, R.drawable.a3, R.drawable.a4,
                R.drawable.a5, R.drawable.a6, R.drawable.a7, R.drawable.a8};

// Creating Object of ViewPagerAdapter
ViewPagerAdapter mViewPagerAdapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Initializing the ViewPager Object
    mViewPager = (ViewPager)findViewById(R.id.viewPagerMain);

    // Initializing the ViewPagerAdapter
    mViewPagerAdapter = new ViewPagerAdapter(MainActivity.this, images);

    // Adding the Adapter to the ViewPager
    mViewPager.setAdapter(mViewPagerAdapter);
}

}

`

**Output: Run on Emulator

**Additional Links: