Johannes S Johannes S - 2 months ago 19
Android Question

Stuttering effects during scroll using android Picasso or Glide

I tried both image frameworks Picasso and Glide to load images from SD and display them in ReceyclerView's list item's ImageView. The ReceyclerView list contains around 50 items and more.

Whenever I scroll down the list, the sroll movement is not fluent and sometimes starts stuttering which worsen the UX in my opinion. I only load images from disc (SD) inside a Fragment.

For Picasso I used following code:

.load(Constants.ABS_PATH_USER_IMAGE + user.getPicture() + ".jpg")
.resize(100, 100)
.transform(new CircleTransform())

The Picasso ScrollListener looks like:

public class PicassoOnScrollListener extends RecyclerView.OnScrollListener {
public static final Object TAG = new Object();
private static final int SETTLING_DELAY = 500;

private static Picasso sPicasso = null;
private Runnable mSettlingResumeRunnable = null;

public PicassoOnScrollListener(Context context) {
if(this.sPicasso == null) {
this.sPicasso = Picasso.with(context.getApplicationContext());

public void onScrollStateChanged(RecyclerView recyclerView, int scrollState) {
if(scrollState == RecyclerView.SCROLL_STATE_IDLE) {

} else if(scrollState == RecyclerView.SCROLL_STATE_SETTLING) {
mSettlingResumeRunnable = new Runnable() {
public void run() {

recyclerView.postDelayed(mSettlingResumeRunnable, SETTLING_DELAY);

} else {

To add ScrollListener to the ReceyclerView I did following:

myRecyclerView.addOnScrollListener(new PicassoOnScrollListener(getContext()));

For Glide I simply used follwong code sample:

.load(Constants.ABS_PATH_USER_IMAGE + author.getPicture() + ".jpg")
.transform(new GlideCircleTransform(mActivity.getApplicationContext()))

Have you got any ideas how to achieve a smooth scroll movement?

Raj Raj

Try to use


in imageView in layout