栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

拍摄完整长度的RecyclerView屏幕截图

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

拍摄完整长度的RecyclerView屏幕截图

这是我的解决方案,

LinearLayoutManager
所有项目的尺寸都相同 并且 只有一种类型的项目时
。此解决方案基于此答案。

注意 :这可能会导致内存不足错误。

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;    }

注意2: 它最初是用Kotlin编写的。这是我使用的原始代码。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/438118.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号