怎么在Android中利用webView实现长按保存下载网络图片

  介绍

这篇文章给大家介绍怎么在Android中利用webView实现长按保存下载网络图片,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

具体内容如下

最近发现在webView的setOnLongClickListener中可以获取到webView。HitTestResult,根据获取的HitTestResult的类型来判断做不同的处理。通过判断类型的类型获取点击图片的url,然后把图片下载到本地,发送广播通知系统图库进行更新,在系统图库中查看下载的图片。运行演示在网页中对图片做长按点击即可下载网络图片

直接上代码:

下面附有演示下载:点击打开链接

package  demo.sam.webview_demo;,      import  android.app.Activity,   import  android.app.Dialog,   import  android.content.Context,   import  android.content.DialogInterface,   import  android.content.Intent,   import  android.net.Uri,   import  handler,   import  android.os.Message,   import  android.provider.MediaStore,   import  android.support.v7.app.AlertDialog,   import  android.support.v7.app.AppCompatActivity,   import  android.os.Bundle,   import  android.text.Editable,   import  android.util.Log,   import  android.view.KeyEvent,   import  android.view.View,   import  android.webkit.WebChromeClient,   import  android.webkit.WebResourceRequest,   import  android.webkit.WebSettings,   import  android.webkit.WebView,   import  android.webkit.WebViewClient,   import  android.widget.Button,   import  android.widget.EditText,   import  android.widget.ProgressBar,   import  android.widget.Toast,      import  java.io.FileNotFoundException,      public  class  MainActivity  extends  Activity  {,      ,private  ProgressBar 进展;   ,private  WebView  webView;   ,private  EditText  editText;   ,private  Button 点击;   ,private  Context 语境;         ,@Override    ,protected  void  onCreate (Bundle  savedInstanceState), {,   super.onCreate才能(savedInstanceState);,   ,,setContentView (R.layout.activity_main);,   上下文才能=,,,   initView才能(),,   initData才能(),,   initListener才能(),,            }大敌;      ,private  void  initData (), {,   WebSettings 才能;settings =, webView.getSettings (),,   settings.setJavaScriptEnabled才能(真正的),,   settings.setUseWideViewPort才能(真正);//设置此属性,可任意比例缩放,   settings.setLoadWithOverviewMode才能(真正的),,//,才能使页面支持缩放,   settings.setBuiltInZoomControls才能(真正的),,   settings.setSupportZoom才能(真正的),,//才能支持自动加载图片,   settings.setLoadsImagesAutomatically才能(真正的),,   settings.setLayoutAlgorithm才能(WebSettings.LayoutAlgorithm.NORMAL);//,排版适应屏幕,//才能,缩放按钮,   settings.setDisplayZoomControls才能(假的),,      webView.setWebViewClient才能(new  WebViewClient () {,      ,,//,页面在当前页面跳转,   ,,@Override    ,,public  boolean  shouldOverrideUrlLoading (WebView 看来,,WebResourceRequest 请求),{,   ,,,return  super.shouldOverrideUrlLoading(视图,请求),,   ,,},      ,,//,页面加载结束,   ,,@Override    ,,public  void  onPageFinished (WebView 看来,,String  url), {,   ,,,super.onPageFinished(视图,url),,   ,,,如果(进步!=null) {,   ,,,,progress.setVisibility (View.GONE);,   ,,,},   ,,},   ,,});      }大敌;      ,private  void  initView (), {,   progress 才能=,(ProgressBar), findViewById (R.id.progress);,   webView 才能=,(WebView), findViewById (R.id.webView);,   editText 才能=,(EditText), findViewById (R.id.url);,   click 才能=,(按钮),findViewById (R.id.click);,   }大敌;      ,private  void  initListener (), {,//才能,网页加载进度显示,   webView.setWebChromeClient才能(new  WebChromeClient () {,   ,,@Override    ,,public  void  onProgressChanged (WebView 看来,,int  newProgress), {,   ,,,super.onProgressChanged(视图,newProgress),,   ,,,progress.setVisibility (View.VISIBLE);,   ,,,progress.setProgress (newProgress);,   ,,},   ,,});      click.setOnClickListener才能(new  View.OnClickListener (), {,   ,,@Override    ,,public  void  onClick (View 视图),{,   ,,,Log.e(“输入的网站“,editText.getText () .toString () .trim ()),,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在Android中利用webView实现长按保存下载网络图片