Java 将webview转换为位图的高度问题

Java 将webview转换为位图的高度问题,java,android,Java,Android,我正在将webview转换为位图进行打印,我的问题是,当我单击“打印”按钮时,整个网页不打印,仅打印设备高度,第一次尝试时,剩余部分将打印为空白,另一次单击“打印”按钮,整个网页将被打印。请告诉我在第一次尝试时打印整个网络视图。我已经提到了我使用的以下代码 protected void onCreate(Bundle savedInstanceState) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

我正在将webview转换为位图进行打印,我的问题是,当我单击“打印”按钮时,整个网页不打印,仅打印设备高度,第一次尝试时,剩余部分将打印为空白,另一次单击“打印”按钮,整个网页将被打印。请告诉我在第一次尝试时打印整个网络视图。我已经提到了我使用的以下代码

protected void onCreate(Bundle savedInstanceState) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
 setContentView(R.layout.Main-activity);
bt_print.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bitmap bmp = getScreenBitmap();``
}
});
}

public Bitmap getScreenBitmap() {
    final WebView webView = (WebView) findViewById(R.id.webview);
   webView.setDrawingCacheEnabled(true); 
   webView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
            MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
   webView.layout(0, 0, webView.getMeasuredWidth(), webView.getMeasuredHeight()); 

  webView.buildDrawingCache(true);
   Bitmap b = Bitmap.createBitmap(webView.getDrawingCache());
  webView.setDrawingCacheEnabled(false); // clear drawing cache
   return b;
}```
Below code is Main-activity.xml 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    style="@style/AppTheme"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.fusion.print" >

      <WebView
            android:id="@+id/webview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scrollbars="vertical"/>

      <Button
        android:id="@+id/btn_print"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#1C5C1C"
        android:layout_alignParentBottom="true"
        android:contentDescription="@string/btn_button"
        android:text="@string/btn_button"
        android:textColor="#ffffff"/>

</RelativeLayout>

创建时受保护的void(Bundle savedInstanceState){
getWindow().addFlags(WindowManager.LayoutParams.FLAG\u保持屏幕打开);
setContentView(R.layout.Main活动);
bt_print.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
位图bmp=getScreenBitmap()``
}
});
}
公共位图getScreenBitmap(){
最终WebView WebView=(WebView)findViewById(R.id.WebView);
webView.setDrawingCacheEnabled(true);
webView.measure(MeasureSpec.makeMeasureSpec(0,MeasureSpec.unspected),
MeasureSpec.makeMeasureSpec(0,MeasureSpec.unspect));
布局(0,0,webView.getMeasuredWidth(),webView.getMeasuredHeight());
webView.buildDrawingCache(true);
位图b=Bitmap.createBitmap(webView.getDrawingCache());
webView.setDrawingCacheEnabled(false);//清除图形缓存
返回b;
}```
下面的代码是Main-activity.xml

对于任何滚动的对象,都有两组“帧”。一组是可见视口,通常受设备屏幕大小的限制。另一个是内容视图,它包含所有数据,其中一些在屏幕上可见,一些在可滚动区域的屏幕外可见。您需要尝试打印内容视图,而不是视口视图。感谢您的回复,我已设置内容视图,但打印机将仅打印设备高度,剩余的将是空白。下次单击“打印机”将打印。我已附加我的xml文件您正在将webView内容捕获到位图中,然后希望打印该位图。你考虑过其他的选择吗?以下是使用webView的打印机相关方法的一个示例: