2017-12-12 3 views
1

내 안드로이드 응용 프로그램에서 html 콘텐츠를 Webview에 표시하고 있습니다. 내 요구 사항의 일부로 텍스트 크기를 늘리거나 줄여야합니다 Webview 콘텐츠. 이를 위해 나는 아래의 방법을 사용하고 있습니다.텍스트 줌 작업을 수행 할 때 webview에서 여분의 공간을 자르는 방법은 무엇입니까?

mWebView.getSettings().setTextZoom(150); 

문제 설명 :

크기를 증가 컨텐츠와 함께 mWebView.getSettings().setTextZoom(150) 전체 웹보기에 textzoom 후. 내가 mWebView.getSettings().setTextZoom(100) 다음 웹보기 높이에게 textzoom 때 는하지만 여전히 150 으로 동일하게 유지 그래서 100

어떻게 재설정하거나 Webview 내용에 여분의 공간을 자르려면 나에게 조언을 주시기 바랍니다이 textzoom 내 콘텐츠를 후 추가 공간이 표시됩니다.

답변

1

시도해보십시오. 희망이 도움이 될 것입니다.

일단 페이지로드가 완료되면 자바 스크립트 메소드를 삽입하여 JS hook을 콜백합니다. 그리고이 방법에서 나는 크기를 지나가고있다.

webView.getSettings().setJavaScriptEnabled(true); 
    webView.setWebViewClient(new WebViewClient() { 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      webView.loadUrl("javascript:MyApp.resize(document.body.getBoundingClientRect().height)"); 
      super.onPageFinished(view, url); 
     } 
    }); 
    webView.addJavascriptInterface(this, "MyApp"); 
} 
@JavascriptInterface 
public void resize(final float height) { 
    MyActivity.this.runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      webView.setLayoutParams(new LinearLayout.LayoutParams(getResources().getDisplayMetrics().widthPixels, (int) (height * getResources().getDisplayMetrics().density))); 
     } 
    }); 
} 
+0

답장을 보내 주셔서 감사합니다. @Dharmishtha. 내 제안을 시도했지만 확대 할 때 전체 콘텐츠가 표시되지 않는 경우 일부 콘텐츠가 보이는 부분에 표시되지 않습니다. –

+0

단서를 다시 한번 고맙습니다. 내 webview의 layoutparams를 재설정 한 후 내 기대대로 작동합니다. textzoom 작업을 수행 할 때마다 다음 코드를 호출합니다. 'webView.setLayoutParams (새 FrameLayout.LayoutParams (FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT));' –

+0

도와 드리겠습니다. 당신에게 유용하다면이 답을 틱 마크로 정답으로 받아 들여라. – Dharmishtha

관련 문제