Reading time: 2 minutes
Hello everyone, this time I’m going to explain how to load images from a URL into a RecyclerView in Android.
If you don’t know how to create a RecyclerView, I recommend you visit the previous post on How to Create a RecyclerView in Android.
Now, let’s get started.
The first thing is to add an ImageView inside the layout that represents a row of the RecyclerView. To do this, follow these steps:
<?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="100dp"> <RelativeLayout android:id="@+id/capaPrincipal" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:id="@+id/capaPrincipal" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="30dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/imagen" android:layout_width="50dp" android:layout_height="50dp" android:padding="10dp"/> </LinearLayout> </RelativeLayout> </RelativeLayout> </RelativeLayout>
Once added, assign the id “imagen” android:id="@+id/imagen"
to reference it from the RecyclerView’s holder as follows:
public class ViewHolder extends RecyclerView.ViewHolder { public ImageView imagen; public int type; public ViewHolder(View itemView, int type) { super(itemView); imagen = itemView.findViewById(R.id.imagen); this.type = type; } }
Since this is an image loaded remotely, before adding it to the RecyclerView item, we need to add a library to our project that will handle loading the corresponding image asynchronously directly into the ImageView. For this purpose, we can use two popular libraries: Glide (https://github.com/bumptech/glide) and Picasso (https://square.github.io/picasso/).
In this example, I have used Picasso, but both libraries work similarly.
First, we need to add the library to the app-level build.gradle file under dependencies:
dependencies { implementation 'com.squareup.picasso:picasso:2.5.2' }
Once added, click on “Sync Now” to download the library.
Now we can use the library in our RecyclerView item.
Simply add the following line in the onBindViewHolder method:
@Override public void onBindViewHolder(@NonNull ViewHolder holder, final int position) { String imageUrl = "https://devcodelight.com/wp-content/uploads/2022/02/cropped-cropped-cropped-cropped-light_logo-1.png"; Picasso.with(context).load(imageUrl).fit().centerCrop().into(holder.imagen); }
Remember to pass the Context context through the RecyclerView constructor.
And that’s it! This is how easily we canReading time: 2 minutes
Hello everyone, this time I’m going to explain how to load images obtained from a URL into a RecyclerView in Android.
If you don’t know how to create a RecyclerView, I recommend you visit the previous post on How to Create a RecyclerView in Android.
Now, let’s get started.
The first thing you need to do is add an ImageView inside the layout that represents a row of the RecyclerView. Follow these steps:
<?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="100dp"> <RelativeLayout android:id="@+id/capaPrincipal" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:id="@+id/capaPrincipal" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="30dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/imagen" android:layout_width="50dp" android:layout_height="50dp" android:padding="10dp"/> </LinearLayout> </RelativeLayout> </RelativeLayout> </RelativeLayout>
Once added, assign the id “imagen” android:id="@+id/imagen"
to reference it from the RecyclerView’s holder as follows:
public class ViewHolder extends RecyclerView.ViewHolder { public ImageView imagen; public int type; public ViewHolder(View itemView, int type) { super(itemView); imagen = itemView.findViewById(R.id.imagen); this.type = type; } }
Since this is an image loaded remotely, before adding it to the RecyclerView item, we need to add a library to our project that will handle loading the corresponding image asynchronously directly into the ImageView. For this purpose, we can use two popular libraries: Glide (https://github.com/bumptech/glide) and Picasso (https://square.github.io/picasso/).
In this example, I have used Picasso, but both libraries work similarly.
First, we need to add the library to the app-level build.gradle file under dependencies:
dependencies { implementation 'com.squareup.picasso:picasso:2.5.2' }
Once added, click on “Sync Now” to download the library.
Now we can use the library in our RecyclerView item.
Simply add the following line in the onBindViewHolder method:
@Override public void onBindViewHolder(@NonNull ViewHolder holder, final int position) { String imageUrl = "https://devcodelight.com/wp-content/uploads/2022/02/cropped-cropped-cropped-cropped-light_logo-1.png"; Picasso.with(context).load(imageUrl).fit().centerCrop().into(holder.imagen); }
Remember to pass the Context context through the RecyclerView constructor.
And that’s it! This is how easily we can load images into our RecyclerViews.