Created
November 23, 2015 06:55
-
-
Save vaibhav-jani/386fbf637cc35f9bf0ed to your computer and use it in GitHub Desktop.
getRecyclerViewScreenshot(RecyclerView view)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public static Bitmap getRecyclerViewScreenshot(RecyclerView view) { | |
| int size = view.getAdapter().getItemCount(); | |
| RecyclerView.ViewHolder holder = view.getAdapter().createViewHolder(view, 0); | |
| view.getAdapter().onBindViewHolder(holder, 0); | |
| holder.itemView.measure(View.MeasureSpec.makeMeasureSpec(view.getWidth(), View.MeasureSpec.EXACTLY), | |
| View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); | |
| holder.itemView.layout(0, 0, holder.itemView.getMeasuredWidth(), holder.itemView.getMeasuredHeight()); | |
| Bitmap bigBitmap = Bitmap.createBitmap(view.getMeasuredWidth(), holder.itemView.getMeasuredHeight() * size, | |
| Bitmap.Config.ARGB_8888); | |
| Canvas bigCanvas = new Canvas(bigBitmap); | |
| bigCanvas.drawColor(Color.WHITE); | |
| Paint paint = new Paint(); | |
| int iHeight = 0; | |
| holder.itemView.setDrawingCacheEnabled(true); | |
| holder.itemView.buildDrawingCache(); | |
| bigCanvas.drawBitmap(holder.itemView.getDrawingCache(), 0f, iHeight, paint); | |
| holder.itemView.setDrawingCacheEnabled(false); | |
| holder.itemView.destroyDrawingCache(); | |
| iHeight += holder.itemView.getMeasuredHeight(); | |
| for (int i = 1; i < size; i++) { | |
| view.getAdapter().onBindViewHolder(holder, i); | |
| holder.itemView.setDrawingCacheEnabled(true); | |
| holder.itemView.buildDrawingCache(); | |
| bigCanvas.drawBitmap(holder.itemView.getDrawingCache(), 0f, iHeight, paint); | |
| iHeight += holder.itemView.getMeasuredHeight(); | |
| holder.itemView.setDrawingCacheEnabled(false); | |
| holder.itemView.destroyDrawingCache(); | |
| } | |
| return bigBitmap; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment