How to loading URL image and RecycleView with using Glide Library
Why RecyclerView?
Android has a limit of heap memory. So when we insert many videos or images in youer app, I’m sure “Out of Memory(OOM)” happens. We can handle this issue by using a RecyclerView RecyclerView is similar to ListView, but it is more smart about heap memory.
Problems - if you use a ListView loading Bitmap image items in real time, you have out of memory errors.
Step 1 - Add Glide Library dependency in build.gradle file
implementation 'com.github.bumptech.glide:glide:4.12.0'
Step 2 - Design Your Item Layout item_list.xml file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="11dp"
android:orientation="vertical">
<ImageView
android:id="@+id/img_item"
android:layout_width="match_parent"
android:layout_height="400dp"
android:contentDescription="TODO"
android:maxHeight="400dp" />
</LinearLayout>
</LinearLayout>
Step 3 - Create a Adapter.java Class
public class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder>{
ArrayList<String> urls;
Context context;
//constructor
public Adapter(ArrayList<String> ImgUrl, Context context_)
{
this.urls = ImgUrl;
this.context = context_;
}
public static class ViewHolder extends RecyclerView.ViewHolder
{
private ImageView image;
public ViewHolder(View v)
{
super(v);
image =(ImageView)v.findViewById(R.id.img);
}
public ImageView getImage(){ return this.image;}
}
@Override
public Adapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.listitem, parent, false);
v.setLayoutParams(new RecyclerView.LayoutParams(1080,800));
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position)
{
Glide.with(this.context)
.load(urls.get(position))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(holder.getImage());
}
@Override
public int getItemCount()
{
return urls.size();
}
}
Step 4 - Write this code in MainActivity.java file
RecyclerView recyclerView = findViewById(R.id.recycler_img);
ArrayList<String> ImgUrl= new ArrayList<>();
Adapter adapter = new Adapter(ImgUrl, this);
recyclerView.setAdapter(adapter);
StaggeredGridLayoutManager Staggered = new StaggeredGridLayoutManager(2,
StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(Staggered);
recyclerView.setAdapter(adapter);
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAh6wX2HGUQJSnP6NDhQLZOiYKnnU-g2WeMCr44YpOsWqZhWnaHI54Ul3rgtBzaSvQB2yG2iy58G1I5_JHsdmbkGQLPjKxjc6m4pEWFsi6ej3PzM1bLl_tJnvwOnouNYzWp4vd3Q-te7Lv/s320/2.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBd396A1IzY3RzWOLmBr0sEkqzvNQPhcsm6N3LDUNEJ9PLBS6KwhZqhOwL3EHAV9j7QmmDumMhjpcJngnLOYfjyd5VHcmOTJ4rNTY-aoo3uTyWXFpmubSdMr1yFdC7l6qXmacZDt0FwQ0z/s320/india.jpg");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn6fa7NPJEG8OkWBoZTZdhH2CjV7mq0j4ePTjYl5K2NbJBglFZ2BmVA_Ew8CwwReD2iPyP7mEvEtxcMkM0KO9_cBMiK8H7I0GumMcWwAmhs5mcpy2GXXKPTN1M6xVb5V8_AwfDaddjM1WZ/s320/a1.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXxpLfwHyUfQM0kkTyIJgFAslyqt7nGCrZkudo5r0CZ3feR6Zk9ZSXlUyyOfHseGWQD0ahiIKtn3F0rVSV_L-XKZNo66TGpYs3I_mcOXRSM1azJv_Q8puvCPIhE81omvfKu8km-izTydH5/s320/4.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF7SgGLM97sIqMmqVtSCU1wMKIsetKuOEaLycOQucoB-wnJeEJa9xFHR8TjnUoxVSQANqZF8s6NYONHxLWMv7h39-iMeRXd0l2gjxL0WTTJAPHdUOS5624Wv2JowCaLHgiIZVqKRnOzrM2/s320/flag.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAwa0zhFLy1sBPyaQ0d6iJffjKPxR6Bu0xCHGgzlHfQhHn6P95MGXGeZwl9jvEWn-8VKYHxPxp8aZMrh4h9QxTc_9gJ8GRlypX9NiAEbEM6rIRcf3sFioAXemYjIVXSAYOW5be-wCOA4Qb/s320/circle_flag.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmex-k9bcoOLnQnpmOLXcLexKoxQfrbSFS4bwbIMnQsGgS6JpJyX-OQToOmKDNIz0iqK8dUqz68WTuiCqKv9QsD4sk1z_TF_Mb0cXZ_4MNkHRC2jQ5C54ouVEcVepJQcmc29QeSwGOA-Wp/s320/a19.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq6lSi9lYuWVCnf5NZ4sRvolkx52j_jrszr5yv7iEDD8pxwUa1-v9TnKy29MBGiT2oSqHxu_PldUOcguqNNck0hQY-_1BmVMq3hWzVbAWhtDQ6DNk-p8rjdwXJ_iJQMoDFl2SndZkYwLPO/s320/a18.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTGnB0xx5jcRiQRmSwVZYhfUYjRUVYHCOHn4nPez_YcOaISjvN3IMGtOIsFyOBbIr2FSFTsuy2g9zMp0zmm8ntnpWgi3QN-gXkoHd_zMG-Otl5Z5LUjN_CG7ocsBYbtEiPnGMY8eJwn0R7/s320/a17.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgukVIoRui9pmd8jhw-GhaBMeasuspO4APywLjgBMHEYndpxHr1QqVO-IuGN5z96ENDhw9LC3fUd7XG2KXJwx_xvNPOeU6WPQkV_uhrUzgqPXTIZM6sJfwHNgERUzCLNgTupniFSJhyL4u0/s320/a16.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuxnGfpFAunGvxllnnHILubCYCyxvMAAp63BEN-KcuDBonzLPLP3OP6uRCozcdruMg0usgFMV6GCPOhKtewzM4sf0ffpjRjppaMGSA_9lXHOdIECd90ZxAIEmB6AhBvu_6vA6sceRCFO0R/s320/a15.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAmPzP3ruC9TWUYwkFeZ2AzrOBpBIlIQhltxujHHzI7YkHbCRzqfAM0_KyvM4RzChELfZSFE5_AXk8NXoC7WHhdDE7tRPfLTIthaqwjlSmjtENG0xTBkW1XJpJEIZ6n03nyjMbV5MUDn8h/s320/a14.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSaWinMemsWW1M10pRxthGvcl8OYiQocRKpd3d-U_BGL4CFrdEilCHJexvjMUbp9e4iBRdE_BhBDniCz_mMMzVqpRqvAwENzubyKVX8g5wG2D-WmqwZGu5FyWd-NG6yI99ju9bsc6jCEKN/s320/a13.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCSV0SygQDp6Q51fQW9yBDC0ZNxGu-vMlrXKrRtRQ8-SeyZFbSs_lWIRd9MQjsRwSIYdanwRD5j0TzSliHWUbG37FlLf45uYrEB616UqcGbKokUIv-wrDWuPP31PZexSwqfikB_xCEKZxu/s320/a12.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCSV0SygQDp6Q51fQW9yBDC0ZNxGu-vMlrXKrRtRQ8-SeyZFbSs_lWIRd9MQjsRwSIYdanwRD5j0TzSliHWUbG37FlLf45uYrEB616UqcGbKokUIv-wrDWuPP31PZexSwqfikB_xCEKZxu/s320/a12.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdhqVhRPirEQ_AFEEfMy8h5VTewVtAqyVQ9uq7NuaVOaXh3Gnb6E9sj3esxLhw8_wkPosHd7eLlah6xOXjB6OrB0FprnBPMlyBuD9QnViNXHqmzPRYdm6K10oyz6yxROUMV6SppAcq1PwE/s320/a11.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibA3LiagYrTfco1C23VgFdMML_V2kWCOQFqXdpbBBKP3Pr3mB3JmSd4b0qSTmMqS9x5ZYw1N4ZsJ-wIjyOtF0Dn7qrYEwR9hgupSz0v1FMNIsrWv9S6ODITXVW1tqiK4Wb25V521e-5vvT/s320/a10.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUOnGXPnvHeDxo2cw1SJ84VopVQXdBKzZrTG_pu54A4wfUi8DOXrYI9YOrhHBV_HWvDSfmEKLZuc-lFxTlnxeEpmROvOKjtGJwIqRnAZcDPudvBy_KrFm0dnEQP3d9bygbXHhaz1vovj5Y/s320/a9.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT3ZjXl0Ms9XSRCJ5SSF8jH3w5_Gdb_OAGZWTIlr4779Nq_Zsxr2JH_KkHTGkUxh9jsI6yzKtL1XUBEYpbjr1sZ0FoiaObhbDIk6krfA6iDRlmD4WyK7l_DhCu6KXSf3DcmAmUK40PPl83/s320/a8.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHqUXO1cFoWTVttECquU0sYnuSvRD7LPAoBc2MAOMKQwRYDPDszcjgUgxXwcalDYUagSFtEITdXTzP4QgcbJcCQuLR6MeyJ9a5Iu7zrV2aALJ1WXEPnRw7pdvtCqvMC_9n-TpYSDSHT257/s320/a7.jpg");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt1tBOhGFA-p0STBV1OPUEF8DIF4B82ugVjPtDzi8DZJWL3hqx7YOXXXeng0yiihYh8CFeSm386AqNwg9-3DJT1vm1g_Oc5LwCNfP56iowwsO8pu3GF_vEXXTrzXyDKwY3AhyV9KleRuPr/s320/a5.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBy-A0oBAgk7PH9H5T60Y7QLi275NqEY-XrzixZP-4cg0n3FwOAOj3jGMHipTI_1OzxAjKiarVETYrE0rIjD-NUaeP-ZKY38cNAfx1pfARgcTgoQ0k1JU_3XUZVvLYEs3KYjRPsVXSWxBh/s320/a4.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKjZFb0-JWgbtvWvYNdW_QMOKFb3t3SrNXKPoS0kcmPjlmCgm4SXzjlDkXrLD7uhpy2YZke8RDTugm827GqHDRofNLJEIWW52QA0XN8l3uWNLL4mr32kVZx3S6IKKfhvFuV712g6p6jcKr/s320/a3.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifVcwNl6F4_mskNK0FUnMT7Tg8cjeehxIBUg1dlbxbRxOjaAksMobGq7lP86Aau61MvaOKuFsjAAzm9xawo_EpdQIw6VCUTBAG66TA-W3W78DjApZxVrCjBru5rdenbstQsF4ghhuOejDa/s320/a2.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk6MO3MzgZiWxQDQnOo2WXi923zXN8rn2iqgIa8xJ5CrRBmdpCo-xlls1ruvnVJ-Nt2LUaiPF6iedryqbtuCYkVQLmtq-gcnyYhw6JC73mm5umGd3suKV6eTDIX0-pu_koJKpq_NrRiHde/s320/3.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEVVWlnbBDCAdMhDFfjFoxxxv9sykrYcMMRGrpn4bcO6ObQUbKorM16gU9_J-CaH2jY2-o-3l_4yBTEjL5kEeaUaiSCXZW9oV9vOqlxqzV2PgDzESfF4sOPp-5vWRorxTGi2uCVONxgeGi/s320/2.png");
ImgUrl.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwBGdn0JzRfeqNmJRSdSQx99gVdNX2XLNlVdjFTOsImN1DnSAmk3px5o68Osy2wBTO5tR_fd2l674IvK9Dd5kGn9r7up5r7df5J9IAevkObxKWc-CGOLGrq8CXp4l1UWG5ZEFehoPdi5vt/s320/1.png");