首页 > 解决方案 > 从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 视图的图片。

我尝试使用线程来获取位图,但它没有帮助。有谁知道我该怎么做?

标签: android

解决方案


推荐阅读