1

我正在尝试从网络视图中获取图像,但是,当我调用“webView.capturePicture()”时,它会给我带来一个图片对象。在大多数情况下,这足以让我使用以下代码将其转换为位图对象

Bitmap b = Bitmap.createBitmap(picture.getWidth(), picture.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
picture.draw(c);

但在相同情况下,将创建的位图比 android 支持的内存最大。

所以,我需要知道如何在文件中直接将图片对象转换为位图对象(我想这将是一个解决方案),而内存中没有任何位图实例。或者一样。要点是从图片对象创建一个位图,但我不能,因为它太大了

PS:我不想使用' android:largeHeap="true" '。

因此,如果有人有相同的想法,请告诉我。

谢谢

4

1 回答 1

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

警告:Picture.writeToStream() 已从 api 级别 18 弃用。建议的替代方法是创建位图。更多信息在这里

于 2013-10-29T16:58:14.380 回答