new Thread(new Runnable() {
@Override
public void run() {
ArrayList<File> files = new ArrayList<>();
for (int i=0;i<mPictures1.size();i++){
File file = Tools.saveImageToSdCard(getActivity(), mPictures1.get(i));
files.add(file);
}
//分享的图片集合
ArrayList<Uri> imageUris = new ArrayList<Uri>();
for (File f : files) {
imageUris.add(Uri.fromFile(f));
}
File file = Tools.saveImageToSdCard(getActivity(), share.getShareUrl());
imageUris.add(Uri.fromFile(file));
Log.d("imageUris==="," "+imageUris);
//分享到微信好友
Intent intent = new Intent();
ComponentName componentName = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI");
if (imageUris.size() == 0) return;
intent.setComponent(componentName);
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_STREAM, imageUris);
startActivity(intent);
ToastUtils.showShort("文案已复制");
}
}).start();
Tools工具类如下:
package com.live.shoplib.ui.add_shop;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Environment;
import android.util.Log;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Calendar;
import java.util.List;
/**
* Created by zyq on 2020/2/26.
*/
public class Tools {
public static String IMAGE_NAME = "iv_share_";
public static int i = 0;
//根据网络图片url路径保存到本地
public static final File saveImageToSdCard(Context context, String image) {
boolean success = false;
File file = null;
try {
file = createStableImageFile(context);
Bitmap bitmap = null;
URL url = new URL(image);
HttpURLConnection conn = null;
conn = (HttpURLConnection) url.openConnection();
InputStream is = null;
is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
FileOutputStream outStream;
outStream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();
success = true;
} catch (Exception e) {
e.printStackTrace();
}
if (success) {
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri contentUri = Uri.fromFile(file);
mediaScanIntent.setData(contentUri);
context.sendBroadcast(mediaScanIntent);
return file;
} else {
return null;
}
}
//创建本地保存路径
public static File createStableImageFile(Context context) throws IOException {
i++;
String imageFileName =IMAGE_NAME + Calendar.getInstance().getTimeInMillis() + ".jpg";
File storageDir = new File(Environment.getExternalStorageDirectory(),
"DCIM");
// File storageDir = new File(context.getExternalCacheDir() + "shareImg");
// File storageDir = new File(Environment.getExternalStorageDirectory() + "/");
Log.i("info","=======保存路径====" + storageDir.getAbsolutePath());
if (!storageDir.exists()){
storageDir.mkdirs();
}
File image = new File(storageDir, imageFileName);
return image;
}
//判断是否安装了微信,QQ,QQ空间
public static boolean isAppAvilible(Context context,String mType) {
final PackageManager packageManager = context.getPackageManager();// 获取packagemanager
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息
if (pinfo != null) {
for (int i = 0; i < pinfo.size(); i++) {
String pn = pinfo.get(i).packageName;
if (pn.equals(mType)) {
return true;
}
}
}
return false;
}
public static void deletePic(File file){
if (file.isDirectory()){
File[] files = file.listFiles();
for (int j = 0; j < files.length; j++) {
File f = files[j];
deletePic(f);
}
// file.delete();//如要保留文件夹,只删除文件,请注释这行
}else{
file.delete();
}
}
}
网络图片缓存到本地路径,然后转成uri集合,通过intent发送出去。代码如上