create Multiple PDF file's thumbnails in adapter as like images loading using Picasso or Glide
You need to integrate picasso library
After that
You need to create PdfRequestHandler class :-
public class PdfRequestHandler extends RequestHandler{
public static String SCHEME_PDF="pdf";
@Override
public boolean canHandleRequest(Request data)
{
String scheme = data.uri.getScheme();
return (SCHEME_PDF.equals(scheme));
}
@Override
public Result load(Request data, int arg1) throws IOException
{
ParcelFileDescriptor fileDescriptor = ParcelFileDescriptor.open(new File(data.uri.getPath()), MODE_READ_ONLY);
PdfRenderer renderer = new PdfRenderer(fileDescriptor);
final int pageCount = renderer.getPageCount();
if(pageCount > 0){
PdfRenderer.Page page = renderer.openPage(0);
Bitmap bitmap = Bitmap.createBitmap(page.getWidth(), page.getHeight(),Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.WHITE);
canvas.drawBitmap(bitmap, 0, 0, null);
page.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);
page.close();
return new Result(bm,LoadedFrom.DISK);
}
return null;
}
}
After That create instance in adapter
Picasso picassoInstance;
Initilize the instance in constructor of adapter
picassoInstance = new Picasso.Builder(context.getApplicationContext())
.addRequestHandler(new PdfRequestHandler())
.build();
Then load file from path in bindViewHolder method of adapter
picassoInstance.load(PdfRequestHandler.SCHEME_PDF+":"+filePath)
.fit()
.into(holder.pdfThumbnailImageView);