我有一个webview,我就像这样捕获视图
Picture picture = m_browser.capturePicture();
Bitmap b = Bitmap.createBitmap( picture.getWidth(),
picture.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas( b );
picture.draw( c );
FileOutputStream fos = null;
try {
fos = new FileOutputStream("/sdcard/temp_1.jpg");
//fos = openFileOutput("samsp_1.jpg", MODE_WORLD_WRITEABLE);
if ( fos != null )
{
b.compress(Bitmap.CompressFormat.JPEG,90, fos);
fos.close();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
现在,如果加载的网站很长,例如。 times.com然后这个图像也太大了。
我想将这张图片拆分成多张图片而不降低质量。
我希望以最高质量获得这些图像。
PLS。救命 感谢
答案 0 :(得分:1)
这有点像黑客攻击,但这可以在非常长的网页上运行而不会耗尽内存。首先,将您的webview放在另一个布局(RelativeLayout rl)中。根据所需的图像大小调整RelativeLayout的大小。然后致电:
rl.draw(canvas);
// do something here to save your bitmap
webview.scrollby(0, rl.getHeight());
并重复一遍,直到你在页面底部!
答案 1 :(得分:0)
Bitmap.createBitmap(source, x, y, width, height)
我总是使用此代码将大图像剪切为多个图像。
我可以轻松使用