美文网首页
Android 调用系统分享网络图片到微信

Android 调用系统分享网络图片到微信

作者: 听风1413 | 来源:发表于2019-03-12 11:36 被阅读0次

    最近项目上有这样一个需求,需要分享网络图片到微信,在网上查阅了相关资料,然后结合自己的思路,总结了一下实现的具体流程:

    1、将网络图片下载下来,转换成Bitmap:
      /**
         * @param  path 网络图片地址
         */
        public Bitmap getBitmap(String path) {
            try {
                URL url = new URL(path);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                conn.setConnectTimeout(5000);
                conn.setRequestMethod("GET");
                if (conn.getResponseCode() == 200) {
                    InputStream inputStream = conn.getInputStream();
                    Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
                    return bitmap;
                }
            } catch (IOException e) {
    
                e.printStackTrace();
            }
            return null;
        }
    
    2、将Bitmap格式的文件保存在本地:
      /**
         * 保存文件
         */
        public void saveFile(Bitmap bm) throws IOException {
            File sd = Environment.getExternalStorageDirectory();
            File dirFile = new File(sd.getPath() + "/Download/imgurl.jpg");
            FileOutputStream fos;
            fos = new FileOutputStream(dirFile);
            if (fos!=null ) {
                bm.compress(Bitmap.CompressFormat.JPEG, 50, fos);
                fos.flush();
                fos.close();
            }
        }
    
    3、调用系统分享:
     private Uri U;
        private void shareCode() {
            File sd = Environment.getExternalStorageDirectory();
            String path = sd.getPath() + "/Download/imgurl.jpg";
            File file = new File(path);
            if (Build.VERSION.SDK_INT < 24) {
                U = Uri.fromFile(file);
            } else {
                //android 7.0及以上权限适配
                U= FileProvider.getUriForFile(this,
                        "cn.izis.whteachtest.provider",
                        file);
            }
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("image/*");
            intent.putExtra(Intent.EXTRA_SUBJECT, "分享");
            intent.putExtra(Intent.EXTRA_STREAM, U);
            startActivity(Intent.createChooser(intent, getTitle()));
        }
    
    注意:android 6.0系统以上,需要申请相关的的权限,这里就不做具体的说明了。

    相关文章

      网友评论

          本文标题:Android 调用系统分享网络图片到微信

          本文链接:https://www.haomeiwen.com/subject/xtjgpqtx.html