我正在尝试从Web视图中获取图像,但是,当我调用“webView.capturePicture()”时,它会为我带来一个Picture Object。在大多数情况下,这足以让我使用以下代码将其转换为位图对象
Bitmap b = Bitmap.createBitmap(picture.getWidth(), picture.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
picture.draw(c);
但是在相同的情况下,将要创建的Bitmap比android在内存中支持的最大。
所以,我需要知道如何在文件中直接将Picture对象转换为位图对象(我猜这将是一个解决方案),而不需要在内存中有任何Bitmap实例。或者像那样。 主要是从图片对象创建一个位图,但我不能,因为它太大。
PS:我不想使用'android:largeHeap =“true”'。
所以,如果有人有同样的想法,请告诉我。
由于
答案 0 :(得分:0)
试试这个:
Picture p = webView.capturePicture();
FileOutputStream fos;
try {
fos = new FileOutputStream("/sdcard/picture");
p.writeToStream(fos);
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
警告:从api级别18弃用了Picture.writeToStream()。建议的替代方法是创建位图。更多信息here