美文网首页android 技术知识
android 中实现保存图片到系统相册中

android 中实现保存图片到系统相册中

作者: 追梦小乐 | 来源:发表于2018-10-16 10:11 被阅读0次
        private static File mPhotoFile = null;
        public static void setPhotoFile(File photoFile){
            mPhotoFile = photoFile;
        }
    
        public static File getPhotoFile(){
    
            return mPhotoFile;
        }
    
       /**
         * @param bmp 获取的bitmap数据
         * @param picName 自定义的图片名
         */
        public static void saveBmp2Gallery(Context context,Bitmap bmp, String picName) {
    //        saveImageToGallery(bmp,picName);
            String fileName = null;
            //系统相册目录
            String galleryPath = Environment.getExternalStorageDirectory()
                    + File.separator + Environment.DIRECTORY_DCIM
                    + File.separator + "Camera" + File.separator;
    //                + File.separator + "yingtan" + File.separator;
    
    //        String photoName = System.currentTimeMillis() + ".jpg";
            // 声明文件对象
            File file = null;
            // 声明输出流
            FileOutputStream outStream = null;
            try {
                // 如果有目标文件,直接获得文件对象,否则创建一个以filename为名称的文件
                file = new File(galleryPath, picName + ".jpg");
    //            file = new File(galleryPath, photoName);
                // 获得文件相对路径
                fileName = file.toString();
                // 获得输出流,如果文件中有内容,追加内容
                outStream = new FileOutputStream(fileName);
                if (null != outStream) {
                    bmp.compress(Bitmap.CompressFormat.JPEG, 90, outStream);
                }
            }catch (Exception e) {
                e.getStackTrace();
            } finally {
                try {
                    if (outStream != null) {
                        outStream.close();
                        setPhotoFile(file);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
            try {
    //            MediaStore.Images.Media.insertImage(context.getContentResolver(),file.getAbsolutePath(),fileName,null);
                MediaStore.Images.Media.insertImage(context.getContentResolver(),bmp,fileName,null);
                Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
                Uri uri = Uri.fromFile(file);
                intent.setData(uri);
                context.sendBroadcast(intent);
                ToastUtils.showToast(context,"图片保存成功");
            } catch (Exception e) {
                e.printStackTrace();
                ToastUtils.showToast(context,"图片保存失败");
            }
    
    
        }
    

    相关文章

      网友评论

        本文标题:android 中实现保存图片到系统相册中

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