2013-10-29 60 views
1

我试图从Web视图中获取图像,但是当我调用“webView.capturePicture()”时,它为我带来了一个图片对象。在大多数情况下,这对我来说够使用的后续代码将其转换为位图对象将BIG图片对象转换为位图对象Android。

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

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

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

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

所以,如果有人有同样的想法让我知道。

感谢

回答

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中已过时和建议的替代方法是创建位图。更多信息here

+0

这是不够的,因为即使我保存在像这样的文件,这仍然是一个图片对象。 PS:我已经尝试过。 –