Reputation:
I have a container Webview
which plays videos.I have fixed the size of container inside xml file by 200dp. Webview
loads data by loading html format. Video is playing smoothly but problem is video height doesn't fit to the given size and user can drag video vertically up and down.Videos width is adjusting according to device size.But the problem is with adjusting video height.
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="200dp">
<WebView
android:id="@+id/myWeb"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alwaysDrawnWithCache="true"
/>
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:id="@+id/progressBar3"
/>
</RelativeLayout>
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webView.getSettings().setSaveFormData(false);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.clearFormData();
webView.clearCache(true);
webView.clearHistory();
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onLoadResource(WebView view, String url) {
super.onLoadResource(view, url);
view.clearHistory();
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
webView.setVisibility(View.VISIBLE);
progressBar.setVisibility(View.GONE);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
view.clearFormData();
view.clearHistory();
view.clearCache(true);
super.onPageStarted(view, url, favicon);
webView.setVisibility(View.VISIBLE);
progressBar.setVisibility(View.VISIBLE);
}
});
webView.setWebChromeClient(new WebChromeClient());
webView.getSettings().setBuiltInZoomControls(false);
webView.getSettings().setDisplayZoomControls(false);
webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
String htmlData=getHtmlData(model.getVideo_url());
webView.loadData(htmlData, "text/html", null);
private String getHtmlData(String imageUrl) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(
"<!DOCTYPE html>\n" +
"<html>" +
"<meta charset=\"UTF-8\">\n" +
"<meta name='viewport' content='width=device-width, initial-scale=1'>" +
"<head>" +
" <title title='Index'></title>" +
"</head>" +
"<body bgcolor='#000'>");
stringBuilder.append(
"<script>\n" +
"function dismissProgress() {\n" +
"Android.dismissProgress(0);" +
"}\n" +
"</script>\n");
stringBuilder.append("<img id='imgsrc' onload='dismissProgress();' src=" + imageUrl + " alt='No Video Found' class='w3-image' class='w3-image' style='width:100%; height:300' align='center' height=300 />");
stringBuilder.append("</body>" +
"</html>");
return stringBuilder.toString();
}
Sp what i am looking for is how to fit the video content inside given height, so that user wont be able to drag the video vertically?.It should adjust the video within the view's height.
Upvotes: 0
Views: 1468
Reputation: 8835
You've given style='width:100%; height:300' in your html code. Try replacing it with height:100% or try reducing the height to 200px. :)
Upvotes: 1