#android
#Android
Вопрос:
Я хочу сохранить изображение, полученное из метода capturePicture, в WebView
разделе как это сделать?
Ответ №1:
web = new WebView(this);
web.setPictureListener(new PictureListener(){
public void onNewPicture(WebView view, Picture picture) {
if(picture != null)
{
try
{
Bitmap bmp = pictureDrawable2Bitmap(new PictureDrawable(picture));
FileOutputStream out = new FileOutputStream(filename);
bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
out.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
});
web.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView webview, String url) {
Picture picture = webview.capturePicture();
}
});
web.getSettings().setJavaScriptEnabled(true);
setContentView(web);
вспомогательная функция
private static Bitmap pictureDrawable2Bitmap(PictureDrawable pictureDrawable){
Bitmap bitmap = Bitmap.createBitmap(pictureDrawable.getIntrinsicWidth()
,pictureDrawable.getIntrinsicHeight()
, Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawPicture(pictureDrawable.getPicture());
return bitmap;
}
Отказ от ответственности: я на самом деле не скомпилировал это, но оно должно работать
Комментарии:
1. @Reno спасибо за ответ.. но он не работает в версии lollipop.. можете ли вы обновить ответ, пожалуйста?