как сохранить изображения в фрагменте веб-просмотра при длительном нажатии на изображение - PullRequest
0 голосов
/ 27 октября 2018

Привет, ребята, я хочу, чтобы пользователь мог сохранять изображения (которые отображаются внутри фрагмента веб-просмотра) в галерее. Я хочу, чтобы этот пользователь мог сохранить изображение в галерее, которая отображается в веб-просмотре. я проверил интернет, но не код работает для меня. Можете ли вы дать мне полный рабочий код в соответствии с моим фрагментом кода. я новичок в андроид студии и студент 10-го класса, пожалуйста, помогите мне

public class BlankFragment extends Fragment {

    public Handler h;
    ProgressBar progressBar;
    public AdView adView;
    public WebView mWebView;
    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        mWebView.saveState(outState);
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
           mWebView.restoreState(savedInstanceState);
    }

    public BlankFragment() {

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view
                = inflater.inflate(R.layout.fragment_blank, container, false);
        progressBar = (ProgressBar) view.findViewById(R.id.progressBar);
        progressBar.setMax(100);
        progressBar.setProgress(1);




    mWebView = (WebView) view.findViewById(R.id.hu);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setSupportZoom(true);
        mWebView.getSettings().setBuiltInZoomControls(true);
        mWebView.getSettings().setDisplayZoomControls(true);
        mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        mWebView.setWebViewClient(new WebViewClient());
        mWebView.setVerticalScrollBarEnabled(true);
        mWebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
        mWebView.getSettings().setAllowFileAccess(true);
        mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
        mWebView.setHorizontalScrollBarEnabled(true);
        this.mWebView.getSettings().setDomStorageEnabled(true);
        mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
        mWebView.loadUrl("https://stockphoto.com/search.php?q=poo+emoji");


        mWebView.setOnKeyListener(new View.OnKeyListener(){

            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_BACK
                        && event.getAction() == MotionEvent.ACTION_UP
                        && mWebView.canGoBack())
                {
                    mWebView.goBack();
                    return true;
                }
                return false;
            }

        });    mWebView.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress) {
                progressBar.setProgress(progress);
            }
        });
        mWebView.setWebViewClient(new WebViewClient() {

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                progressBar.setVisibility(View.VISIBLE);


            }



            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }

            @Override
            public void onPageFinished(WebView view, String url) {

                progressBar.setVisibility(View.GONE);
            }
        });


        return view;
    }

}

1 Ответ

0 голосов
/ 27 октября 2018

Вы должны декодировать HTML:

URL yahoo = new URL("http://www.yahoo.com/");
BufferedReader in = new BufferedReader(
            new InputStreamReader(
            yahoo.openStream()));

String inputLine;

while ((inputLine = in.readLine()) != null)
    System.out.println(inputLine);

in.close();

После этого получите Image Tag из него, затем вы сможете получить от него магов и записать на SD-карту.

...