这里我对webview有一个简单的问题。
我的要求是捕获webview并将sdcard中的文件保存到我在下面使用的代码中。
以下用于从webview生成位图的代码
Webview to Bitmap:
webview.measure(MeasureSpec.makeMeasureSpec(
MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
webview.layout(0, 0, webview.getMeasuredWidth(),
webview.getMeasuredHeight());
webview.setDrawingCacheEnabled(true);
webview.buildDrawingCache();
bitmap = Bitmap.createBitmap(webview.getMeasuredWidth(),
webview.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas bigcanvas = new Canvas(bitmap);
Paint paint = new Paint();
int iHeight = bitmap.getHeight();
bigcanvas.drawBitmap(bitmap, 0, iHeight, paint);
webview.draw(bigcanvas);
}
catch (Exception e)
{
e.printStackTrace();
}
webview.setDrawingCacheEnabled(false);
下面的代码,用于将文件保存到内存中
保存为文件:
File myDir = new File(Environment.getExternalStorageDirectory(), "Sample");
if (myDir.exists())
{
}
else
{
myDir.mkdir();
}
String fname = "sample" + ".png";
file1 = new File(myDir, fname);
if(bitmap!=null)
{
try
{
FileOutputStream out = new FileOutputStream(file1);
bitmap.compress(Bitmap.CompressFormat.PNG, 10, out);
out.flush();
out.close();
}
catch (Exception e)
{
e.printStackTrace();
}}
但是这里的webview加载很好,但没有在android 5.0(棒棒糖)中完全捕获,如下图所示
我该如何解决这个问题?请给我一些建议或一些代码片段。
提前致谢..
答案 0 :(得分:1)
U可以在画布上绘制视图,如下所示:
Bitmap mBitmap;
Layout webViewContainer
mBitmap = Bitmap.createBitmap(webViewContainer.getWidth(), webViewContainer.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(mBitmap);
webViewContainer.draw(canvas);
答案 1 :(得分:1)
您需要在创建任何WebView之前调用WebView.enableSlowWholeDocumentDraw()。也就是说,如果布局中有任何WebView,请确保在调用下面显示的onCreate()中的setContentView()之前调用此方法。
$pdfBrc = new FPDI(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$fileBrc = realpath($output);
$pagecountBrc = $pdfBrc->setSourceFile($fileBrc);
for ($i = 1; $i <= $pagecountBrc; $i++) {
$tplBrc = $pdfBrc->importPage($i);
$sizeBrc = $pdfBrc->getTemplateSize($tplBrc);
$orientationBrc = $sizeBrc['h'] > $sizeBrc['w'] ? 'P' : 'L';
$pdfBrc->AddPage($orientationBrc);
$pdfBrc->useTemplate($tplBrc, null, null, $sizeBrc['w'], $sizeBrc['h'], true);
}
$styleBrc = array(
'position' => 1,
'align' => 'C',
'stretch' => false,
'fitwidth' => true,
'cellfitalign' => '',
'border' => false,
'hpadding' => 'auto',
'vpadding' => 'auto',
'fgcolor' => array(0, 0, 0),
'bgcolor' => false, //array(255,255,255),
'text' => true,
'font' => 'helvetica',
'fontsize' => 8,
'stretchtext' => 4
);
$pdfBrc->write1DBarcode('KPV09008008986', 'C128B', 40, 2, 50, 15, 0.8, $styleBrc, 'N');
$pdfBrc->Ln();
它对我来说很好..