Android图片保存在本地相册

来源:互联网 发布:java spring框架 实例 编辑:程序博客网 时间:2024/05/16 14:59

好久没有冒泡了,最近公司开发模式变成了敏捷开发,技术人员的时间已经成为压缩饼干了,没有太多的事情去整理在开发中遇到的问题和使用到的技术点了.今天有一点点事件来整理了开发中用到的一个知识点,网上图片保存,或者本地图片保存到指定文件夹.


public class ImageHelper {    private Context mContext;    private static ImageHelper instance = null;    public synchronized static ImageHelper getInstance(Context context) {        if (instance == null) {            instance = new ImageHelper(context.getApplicationContext());        }        return instance;    }    private ImageHelper(Context context) {        mContext = context;    }    public Bitmap loadImage(String filePathOrUrl) throws ClientProtocolException, IOException, HttpRequestException {        Bitmap ret = null;        if (filePathOrUrl.startsWith("http")) {            // 是否有缓存            String fileName = generateDiskCacheKey(filePathOrUrl, 0, 0, false);            File file = null;            file = new File(mContext.getCacheDir(), fileName);// 保存文件            if (!file.exists()) {                HttpUtil.download(filePathOrUrl, file);                ret = BitmapFactory.decodeFile(file.getAbsolutePath());            } else {                String imagePath = mContext.getCacheDir() + "/" + fileName;                ret = BitmapFactory.decodeFile(imagePath);            }        } else {            ret = BitmapFactory.decodeFile(filePathOrUrl);        }        return ret;    }}public class SaveImage {    BaseActivity activity;    public SaveImage(Activity activity) {        this.activity = (BaseActivity)activity;    }    /**     *      * @param context     * @param filePath 网络图片地址或者本地图片     */    public  void saveFile(Context context, String filePath){        Bitmap bm = null;        ImageHelper imageHelper = ImageHelper.getInstance(context);        String pathStr = getSystemPhotoPath();        try {            bm = imageHelper.loadImage(filePath);        } catch (IOException e) {            e.printStackTrace();        }        File foder = new File(pathStr);        if (!foder.exists()) {            foder.mkdirs();        }        String fileName = System.currentTimeMillis() + ".jpg";        File myCaptureFile = new File(foder, fileName);        BufferedOutputStream bos = null;        if (!myCaptureFile.exists()) {            try {                myCaptureFile.createNewFile();                bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));                bm.compress(Bitmap.CompressFormat.JPEG, 80, bos);                bos.flush();                bos.close();            } catch (IOException e) {                e.printStackTrace();            }        }        // 最后通知图库更新        try {            MediaStore.Images.Media.insertImage(context.getContentResolver(), myCaptureFile.getAbsolutePath(), fileName, null);        } catch (FileNotFoundException e) {            e.printStackTrace();        }        Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);        Uri uri = Uri.fromFile(myCaptureFile);        intent.setData(uri);        activity.sendBroadcast(intent);        activity.showToast("保存成功了...");    }    private String getSystemPhotoPath() {        String pathSaveParent = null;        try {            pathSaveParent = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)                    .getAbsolutePath();        } catch (Exception e) {            activity.showToast("当前系统相册路径不可用,添加失败");        }        return pathSaveParent;    }}
0 0
原创粉丝点击