Android 安卓将网络图片保存到相册(已过时)

工具类:

/**

  • @author ThirdGoddess

  • @email ofmyhub@gmail.com

  • @Github https://github.com/ThirdGoddess

  • @date :2020-03-14 10:11

*/

public class SaveNetPhotoUtils {

private static Context contexts;

private static String photoUrls;

private static Bitmap bitmap;

private static String mSaveMessage = “failed”;

//自定义名字

private static String photoNames;

/**

  • 保存图片,无须自定义名字

  • @param context

  • @param photoUrl

*/

public static void savePhoto(Context context, String photoUrl) {

contexts = context;

photoUrls = photoUrl;

new Thread(saveFileRunnable).start();

}

/**

  • 定义图片名字保存到相册

  • @param context

  • @param photoUrl

  • @param photoName 图片名字,定义格式 name.jpg/name.png/…

*/

public static void savePhoto(Context context, String photoUrl, String photoName) {

contexts = context;

photoUrls = photoUrl;

photoNames = photoName;

new Thread(saveFileRunnable2).start();

}

private static Runnable saveFileRunnable = new Runnable() {

@Override

public void run() {

try {

if (!TextUtils.isEmpty(photoUrls)) {

URL url = new URL(photoUrls);

InputStream inputStream = url.openStream();

bitmap = BitmapFactory.decodeStream(inputStream);

inputStream.close();

}

saveFile(bitmap);

mSaveMessage = “success!”;

} catch (IOException e) {

mSaveMessage = “failed”;

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}

messageHandler.sendMessage(messageHandler.obtainMessage());

}

};

private static Runnable saveFileRunnable2 = new Runnable() {

@Override

public void run() {

try {

if (!TextUtils.isEmpty(photoUrls)) {

URL url = new URL(photoUrls);

InputStream inputStream = url.openStream();

bitmap = BitmapFactory.decodeStream(inputStream);

inputStream.close();

}

saveFile(bitmap, photoNames);

mSaveMessage = “success!”;

} catch (IOException e) {

mSaveMessage = “failed”;

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}

messageHandler.sendMessage(messageHandler.obtainMessage());

}

};

/**

  • 保存成功和失败通知

*/

@SuppressLint(“HandlerLeak”)

private static Handler messageHandler = new Handler() {

@Override

public void handleMessage(Message msg) {

Toast.makeText(contexts, mSaveMessage, Toast.LENGTH_SHORT).show();

}

};

/**

  • 保存图片

  • @param bm

  • @throws IOException

*/

public static void saveFile(Bitmap bm) throws IOException {

File dirFile = new File(Environment.getExternalStorageDirectory().getPath());

if (!dirFile.exists()) {

dirFile.mkdir();

}

//图片命名

String fileName = UUID.randomUUID().toString() + “.jpg”;

File myCaptureFile = new File(Environment.getExternalStorageDirectory().getPath() + “/DCIM/Camera/” + fileName);

BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));

bm.compress(Bitmap.CompressFormat.JPEG, 80, bos);

bos.flush();

bos.close();

//广播通知相册有图片更新

Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);

Uri uri = Uri.fromFile(myCaptureFile);

intent.setData(uri);

contexts.sendBroadcast(intent);

}

/**

  • 保存图片

  • @param bm

  • @param photoName 图片命名

  • @throws IOException

*/

public static void saveFile(Bitmap bm, String photoName) throws IOException {

File dirFile = new File(Environment.getExternalStorageDirectory().getPat
h());

if (!dirFile.exists()) {

dirFile.mkdir();

}

//图片命名后保存到相册

File myCaptureFile = new File(Environment.getExternalStorageDirectory().getPath() + “/DCIM/Camera/” + photoName);

BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));

bm.compress(Bitmap.CompressFormat.JPEG, 80, bos);

bos.flush();

bos.close();

//广播通知相册有图片更新

Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值