博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android图片保存在本地相册
阅读量:6616 次
发布时间:2019-06-25

本文共 3430 字,大约阅读时间需要 11 分钟。

hot3.png

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

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;    }}

 

转载于:https://my.oschina.net/SunnyTime/blog/741685

你可能感兴趣的文章
Windows sever 2008
查看>>
docker基本使用
查看>>
php printf() 输出格式化的字符串
查看>>
VS2013下的64位与32位程序配置
查看>>
Java_内部类和静态内部类的区别
查看>>
Failed to load resource: net::ERR_CACHE_MISS
查看>>
JS编写简易计算器
查看>>
浅谈C中的指针和数组(二)
查看>>
SSM+Maven+IDEA增删改查
查看>>
va_list用法
查看>>
微信小程序开发模板消息的时候 出现 errcode: 41028, errmsg: "invalid form id hint:
查看>>
2001年日语能力考试二级真题及答案
查看>>
移动端页面布局
查看>>
FUNCS.H中的函数声明
查看>>
让织梦CMS的后台编辑器支持优酷视频
查看>>
Python语言中round函数的一个疑惑
查看>>
hdu Collect More Jewels
查看>>
使用msf对tomcat测试
查看>>
CSS3边框
查看>>
Spring事务隔离级别,事务传播行为
查看>>