安卓开发app保存图片后,微信和qq选择图片可以看到

微信采用的是扫描系统媒体,所以保存成功之后需要刷新一下系统媒体库,

public static File saveBitmap(Bitmap bm, String name, Context context) {
    File dir = null;

    //系统相册路径
    String galleryPath= Environment.getExternalStorageDirectory()
            + File.separator + Environment.DIRECTORY_DCIM
            +File.separator+"Camera"+File.separator;
//如果大于api28的话,安卓q是不能在外部存储图片的,
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) {
        dir = new File(String.valueOf(context.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS)));
    } else {
        dir = new File(PIC_SAVE_PATH);
    }

    dir.mkdirs();
    File f = new File(dir, name + ".png");
    if (f.exists())
        f.delete();
    try {
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f));
        bm.compress(Bitmap.CompressFormat.PNG, 90, bos);
        bos.flush();
        bos.close();
        Log.e("SaveBitmap", "已经保存");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        Log.e("SaveBitmap", "保存失败");
        e.printStackTrace();
    }

    try {
        //刷新媒体库之后,微信和qq选择图片都能看到
        MediaStore.Images.Media.insertImage(App.mApp.getContentResolver(),
                f.getAbsolutePath(), f.getName(), null);
        App.mApp.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + f.getAbsolutePath())));

    } catch (Exception e) {
        e.printStackTrace();
    }
    return f;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值