我使用下面的代码从 UPDATE tblMsgs SET tblMsgs.MsgType = IIf(Mid("MsgString",6,2)="22","RESPONSE","REQUEST")
WHERE (((Mid([MsgString],6,2))="22" Or (Mid([MsgString],6,2))="14"));
if 19 = REQUEST
if 59 = RESPONSE
if 22 = REQUEST
if 62 = RESPONSE
if 14 = REQUEST
if 54 = RESPONSE
if 2F = REQUEST
if 6F = RESPONSE
if 7E = REQUEST
获取屏幕截图。它在Android 6及更低版本中运行良好,但在Android 7中它只占用webview的可见部分。
WebView
但位图b不完整。如何在Android Nougat中截取整个// before setContentView
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
WebView.enableSlowWholeDocumentDraw();
}
...
// before set webview url
webView.setDrawingCacheEnabled(true);
// after html load complete
final Bitmap b = Bitmap.createBitmap(webView.getMeasuredWidth(),
webView.getContentHeight(), Bitmap.Config.ARGB_8888);
Canvas bitmapHolder = new Canvas(b);
webView.draw(bitmapHolder);
的屏幕截图?
编辑:
我发现WebView
效果不佳。我对整个webView.getContentHeight
高度进行了硬编码,效果很好。所以问题是:如何在Android Nougat中获得整个webview
内容高度?
答案 0 :(得分:4)
使用以下方法代替getMeasuredWidth()& getContentHeight()方法:
computeHorizontalScrollRange(); -> for width
computeVerticalScrollRange(); -> for height
这两种方法将返回整个可滚动的宽度/高度,而不是屏幕上webview的实际widht / height
要实现这一目标,您需要制作WebViews getMeasuredWidth()& getContentHeight()方法公开如下
public class MyWebView extends WebView
{
public MyWebView(Context context)
{
super(context);
}
public MyWebView(Context context, AttributeSet attrs)
{
super(context, attrs);
}
public MyWebView(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
}
@Override
public int computeVerticalScrollRange()
{
return super.computeVerticalScrollRange();
}
}
在其他工作中你也可以使用视图树观察者来计算webview高度,如answer
所示答案 1 :(得分:0)
删除以下代码块
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
WebView.enableSlowWholeDocumentDraw();
}
禁用整个HTML文档会产生很大的性能损失。
根据文档,
对于针对L版本的应用,WebView有一个新的默认行为,可以通过智能选择需要绘制的HTML文档部分来减少内存占用并提高性能。
可能值得研究this
回答编辑1: 在渲染后检索webview高度 https://stackoverflow.com/a/22878558/2700586