具体效果可见“掌眼”掌拍古玩江湖:http://bbs.guwanch.com

private String imgurl = "";    /***     * 功能:长按图片保存到手机     */    @Override    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {        super.onCreateContextMenu(menu, v, menuInfo);        MenuItem.OnMenuItemClickListener handler = new MenuItem.OnMenuItemClickListener() {            public boolean onMenuItemClick(MenuItem item) {                if (item.getTitle() == "保存到手机") {                    new SaveImage().execute(); // Android 4.0以后要使用线程来访问网络                } else {                    return false;                }                return true;            }        };        if (v instanceof WebView) {            WebView.HitTestResult result = ((WebView) v).getHitTestResult();            if (result != null) {                int type = result.getType();                if (type == WebView.HitTestResult.IMAGE_TYPE || type == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {                    imgurl = result.getExtra();                    menu.setHeaderTitle("提示");                    menu.add(0, v.getId(), 0, "保存到手机").setOnMenuItemClickListener(handler);                }            }        }    }    /***     * 功能:用线程保存图片     *      * @author wangyp     *      */    private class SaveImage extends AsyncTask<String, Void, String> {        @Override        protected String doInBackground(String... params) {            String result = "";            try {                String sdcard = Environment.getExternalStorageDirectory().toString();                File file = new File(sdcard + "/Download");                if (!file.exists()) {                    file.mkdirs();                }                int idx = imgurl.lastIndexOf(".");                String ext = imgurl.substring(idx);                file = new File(sdcard + "/Download/" + new Date().getTime() + ext);                InputStream inputStream = null;                URL url = new URL(imgurl);                HttpURLConnection conn = (HttpURLConnection) url.openConnection();                conn.setRequestMethod("GET");                conn.setConnectTimeout(20000);                if (conn.getResponseCode() == 200) {                    inputStream = conn.getInputStream();                }                byte[] buffer = new byte[4096];                int len = 0;                FileOutputStream outStream = new FileOutputStream(file);                while ((len = inputStream.read(buffer)) != -1) {                    outStream.write(buffer, 0, len);                }                outStream.close();                result = "图片已保存至:" + file.getAbsolutePath();            } catch (Exception e) {                result = "保存失败!" + e.getLocalizedMessage();            }            return result;        }        @Override        protected void onPostExecute(String result) {            MsgBox("提示", result);        }    }

具体效果可下载APP测试: 或关注微信公众号:

更多相关文章

  1. Android(安卓)Unparsed aapt error(s)! Check the console for o
  2. android设置手机横屏与竖屏无效的解决方法
  3. android技术选型(持续更新中...)
  4. Ubuntu 下android 开发,eclipse不能识别手机
  5. android中EditText只允许输入汉字(过滤汉字)
  6. Android下载文件提示文件不存在。。。 java.io.FileNotFoundExce
  7. Android(安卓)8.0 启动速度优化工具
  8. Android(安卓)Bitmap相关
  9. [Android] 调用系统裁切图片的 !!! FAILED BINDER TRANSACTION !

随机推荐

  1. HTTP状态码及说明
  2. Gitlab备份、迁移、恢复和升级
  3. 痞子衡嵌入式:恩智浦MCU安全加密启动一站
  4. Gitlab安装部署及基础操作
  5. 使用git-svn迁移SVN至GitLab
  6. SVN服务的部署及使用
  7. 痞子衡嵌入式:高性能MCU之音视频应用开发
  8. tomcat进阶操作
  9. 痞子衡嵌入式:飞思卡尔Kinetis开发板OpenS
  10. tomcat环境部署