Android WebView实现长按保存图片及长按识别二维码功能

  

先来简单说一下本文所要实现的功能:用户在浏览网页的时候,长按某一区域,识别如果是图片,则弹出弹框,出现保存图片的功能,同时识别图片是否是二维码,如果是则在弹框中追加识别二维码功能。

  

细节上:保存图片的弹框要显示在手指长按的位置;选择图片保存后,可以让用户直接去相册查看;选择识别二维码,判断是是不是网址,是的话可以让用户选择复制或访问,否则可以让用户选择复制或搜索。

  

然后再来看一下效果图:

  

<>强保存图片

  

 Android WebView实现长按保存图片及长按识别二维码功能“> <br/>
  </p>
  </p> <p> save.gif
  <p>识别包含普通文字的二维码:</p>
  <p> <img src=   @Override   公共布尔>   setOnLongClickListener(新View.OnLongClickListener () {      公共布尔>   公共空间>   GlideApp.with (appContext) .asFile () .load (url)。submit () . get ();      

可以在长按识别出图片的时候就行预加载:

        GlideApp.with (appContext) .asBitmap () .load (url) .preload ();      

将图片保存在相册:

        公共静态孔隙displayToGallery(上下文环境中,文件photoFile) {   如果(photoFile==null | | ! photoFile.exists ()) {   返回;   }   字符串photoPath=photoFile.getAbsolutePath ();   字符串photoName=photoFile.getName ();//把文件插入到系统图库   尝试{   ContentResolver ContentResolver=context.getContentResolver ();   MediaStore.Images.Media。insertImage (contentResolver photoPath photoName, null);   }捕捉(FileNotFoundException e) {   e.printStackTrace ();   }//最后通知图库更新   上下文。sendBroadcast(新意图(意图。ACTION_MEDIA_SCANNER_SCAN_FILE, Uri。解析(“文件://? photoPath)));   }      

<>强识别图片中的二维码

  

显示弹框的同时还要判断图片是否包含二维码,这部分就是zx自带的功能,所以代码就不贴了。注意不应该等是zx判断是不是二维码后再显示弹框,因为这部分操作耗时可能比较长(见图二)。应当在识别二维码内容后再去更新弹框列表的内容。

  

  

总体来说这个功能实现注意的地方还是挺多的,好在都不复杂。当然本例还存在待优化的地方,以及实现更高级的功能,比如以图搜图,查看大图功能,也可以利用WebView。HitTestResult对获取到其他类型的内容进行处理,限于篇幅就不再展开了。

  

最后贴下本项目github地址,对WebView感兴趣的可以了解下:

  github

  

  

以上所述是小编给大家介绍的Android WebView实现长按保存图片及长按识别二维码,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

Android WebView实现长按保存图片及长按识别二维码功能