android 分享服务器下载的图片

    xiaoxiao2022-06-27  199

    public void initView() { initToolBar(); shareImageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("uri:---"+uri); if (uri!=null && !uri.equals("")){ Intent intent=new Intent(Intent.ACTION_SEND); intent.setType("image/*"); intent.putExtra(Intent.EXTRA_STREAM,uri); startActivity(Intent.createChooser(intent,"分享")); }else { Toast.makeText(getContext(),"网络异常",Toast.LENGTH_SHORT); //再次下载 if (path!=null && !path.equals("")){ new Task().execute(path); } } } }); } /** * 获取网络图片 * @param imageurl 图片网络地址 * @return Bitmap 返回位图 */ public Bitmap GetImageInputStream(String imageurl){ URL url; HttpURLConnection connection=null; Bitmap bitmap=null; try { url = new URL(imageurl); connection=(HttpURLConnection)url.openConnection(); connection.setConnectTimeout(6000); //超时设置 connection.setDoInput(true); connection.setUseCaches(false); //设置不使用缓存 InputStream inputStream=connection.getInputStream(); bitmap=BitmapFactory.decodeStream(inputStream); inputStream.close(); } catch (Exception e) { e.printStackTrace(); } return bitmap; } /** * 异步线程下载图片 * */ class Task extends AsyncTask<String, Integer, Void> { protected Void doInBackground(String... params) { bitmap=GetImageInputStream((String)params[0]); return null; } protected void onPostExecute(Void result) { super.onPostExecute(result); SavaImage(bitmap, Environment.getExternalStorageDirectory()+"/shuiliducha/"); } } /** * 保存位图到本地 * @param bitmap * @param path 本地路径 * @return void */ public void SavaImage(Bitmap bitmap, String path){ File dirFile=new File(path); //文件夹不存在,则创建它 if(!dirFile .exists()){ dirFile .mkdir(); } File file=new File(path,"person"+".jpg"); FileOutputStream fileOutputStream=null; try { fileOutputStream=new FileOutputStream(file); bitmap.compress(Bitmap.CompressFormat.JPEG, 100,fileOutputStream); fileOutputStream.flush(); fileOutputStream.close(); } catch (Exception e) { e.printStackTrace(); } this.uri=Uri.fromFile(file); }

    android 7 之后 不能分享自己的文件,要配置权限

    androidManifest.xml

    <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.gw.safety"//项目名 android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider>

    file_paths.xml:

    <paths xmlns:android="http://schemas.android.com/apk/res/android"> <external-path name="ex_path" path="updateApk/"/> </paths>

    uri获取

    Uri uri = FileProvider.getUriForFile(getContext(),"com.gw.safety",f);

    最新回复(0)