android - 从android中的网络视图截取屏幕截图
问题描述
我有一个网络视图,需要从网站截取屏幕截图。人们建议我使用函数capturePicture(),该函数已被弃用。所以我像这样从当前站点创建位图并将其保存为 byte[ ] 到数据库:
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getWidth(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 10, stream);
DatabaseHelper.updateData(id, stream.toByteArray());
bitmap.recycle();
并使用Glide将其加载到另一个 Activity 中:
Glide.with(context).load(items.get(position).getImage())
.placeholder(R.drawable.ic_defualt)
.into(holder.ivShot);
现在,如果屏幕截图数量增加,应用程序的速度会降低,内存大小会增加。我知道位图的问题很复杂,但是必须有一种方法可以在没有任何内存泄漏或减速的情况下拍摄 web 视图的图片。
我尝试使用线程来获取位图,但它没有帮助。有谁知道我该怎么做?
解决方案
推荐阅读
- python - 如何在 Django Admin 中更改更改列表页面的标题/页面标题
- parse-platform - Parse Server 是否有默认请求超时?
- java - 如何使用 Cloudinary api 从上传的视频中检索缩略图?
- solr - 概括 Solr 建议
- maven - 为什么 Maven 无法识别父级使用 Jenkins 的 pom 的自定义存储库?
- mesh - Gmsh 导出到 .su2 网格
- reactjs - 检测芯片标签中的图标 - 反应笑话测试
- java - 删除和意图选择的项目android
- git - git拉到不同的分支
- java - 仅当参数不为空时才使用流过滤器