Android中Bitmap格式压缩存储
2015-07-27 14:22
447 查看
压缩图片,就是把大图片压缩小,降低图片的质量,在一定范围内,降低图片的大小,并且满足需求(图片仍就清晰)。 从图片路径中读取图片(图片很大,不能全部加在到内存中处理,要是全部加载到内存中会内存溢出),我们可以以压缩的方式保存图片到手机。
public class FileUtils { private static String mSdRootPath = null;//sd卡的根目录 private static String mDataRootPath = null;//手机的缓存根目录 private final static String FOLDER_NAME = "/AndroidImage";//保存Image的目录名 public FileUtils(Context context) { mDataRootPath = context.getCacheDir().getPath(); mSdRootPath = Environment.getExternalStorageDirectory().getPath(); } /** * 获取储存Image的目录 * @return String */ private String getStorageDirectory() { return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) ? mSdRootPath + FOLDER_NAME : mDataRootPath + FOLDER_NAME; } /** * 保存Image的方法,有sd卡存储到sd卡,没有就存储到手机目录 * @param fileName * @param bitmap * @throws IOException */ public void saveBitmap(String fileName, Bitmap bitmap) throws IOException { if (bitmap == null) { return; } String path = getStorageDirectory(); File folderFile = new File(path); if (!folderFile.exists()) { folderFile.mkdir(); } File file = new File(path + File.separator + fileName); file.createNewFile();//判断文件是否存在,如果不存在则调用createNewFile()方法创建新目录 FileOutputStream fos = new FileOutputStream(file); //把位图的压缩信息写入到一个指定的输出流中 //第一个参数format为压缩的格式 //第二个参数quality为图像压缩比的值,0-100.0 意味着小尺寸压缩,100意味着高质量压缩 //第三个参数stream为输出流 bitmap.compress(CompressFormat.JPEG, 100, fos); fos.flush(); fos.close(); } /** * 从手机或者sd卡获取Bitmap * @param fileName * @return Bitmap */ public Bitmap getBitmap(String fileName) { return BitmapFactory.decodeFile(getStorageDirectory() + File.separator + fileName); } /** * 获取文件的大小 * @param fileName * @return long */ public long getFileSize(String fileName) { return new File(getStorageDirectory() + File.separator + fileName).length(); } }
相关文章推荐
- Android缩放动画
- “哎哟!蛮吊的” 之 Android Activity生命周期
- Android缩放动画
- android 位移动画移动后原地绑定的点击事件还在
- Android源码——安卓聊天
- Android Logo 尺寸比例制作
- Android RSA加密解密功能的实现
- Android ndk 单步调试
- Android碎片第三期
- Android Studio手动导入第三方类库
- 【第五篇】androidEventbus源代码阅读和分析之发送粘性事件和接收粘性事件代码分析
- android底部弹出菜单
- android listView点击item,高亮显示
- Android完全退出程序
- android service(二)
- 通过html页面打开Android本地的app
- Android ServiceManager启动
- android4.4修改设置界面里,蓝牙默认名称
- 最新百度地图android sdk自定义覆盖物
- 基于Monkey的Android自动化测试