0

I am using webview and when there is no internet, I like to display png in my fragment. But the png is not occupying full screen. Here is my code -

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(....);


        webview = (WebView)view.findViewById(R.id.webview1);

        webview.getSettings().setJavaScriptEnabled(true);
        webview.setWebViewClient(new WebClient(getActivity()));
        webview.loadUrl(url);

        return view;
    }

    public class WebClient extends android.webkit.WebViewClient {
    Context mActivity;

    public WebClient(Context context){
        mActivity = context;
    }
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        return false;

    }

    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        view.setBackgroundColor(0);
        view.loadUrl("file:///android_res/drawable/no_internet.png");
    }

}
MagdHo0506
  • 73
  • 8

1 Answers1

0

Hey you it's simple you just have to set height and width wile you load url in on onReceivedError.

Display display = getWindowManager().getDefaultDisplay();
int width=display.getWidth();

String data="<html><head><title>Example</title><meta name=\"viewport\"\"content=\"width="+width+", initial-scale=0.65 \" /></head>";
data=data+"<body><center><img width=\""+width+"\" src=\""+url+"\" /></center></body></html>";
webView.loadData(data, "text/html", null);

and you done with the problem :)

Another way to try with

WebSettings settings = webView.getSettings();
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
Umesh Sonawane
  • 517
  • 6
  • 17