安卓中关于图片从网络获取,压缩,上传,下载,缩略图,缓存的一些处理总结(四)
来源:互联网 发布:苹果手机信号增强软件 编辑:程序博客网 时间:2024/06/05 18:30
这里根绝网上的一些文章写了一个工具类 pictureSize 一般写成1080*1920 这个数值越大图片越清晰 加载需要的内存越多 请大家根据情况自行设定 这里2个方法 一个是针对网上URL 一个是本地path
public static Bitmap downloadImgByUrl(String imgUrl, int pictureSize) { BufferedInputStream is = null; HttpURLConnection conn = null; try { URL url = new URL(imgUrl); conn = (HttpURLConnection) url.openConnection(); is = new BufferedInputStream(conn.getInputStream()); is.mark(is.available()); } catch (IOException e) { e.printStackTrace(); } Bitmap bitmap = null; BitmapFactory.Options opts = new BitmapFactory.Options(); //2.为位图设置100K的缓存 opts.inTempStorage = new byte[100 * 1024]; //3.设置位图颜色显示优化方式 opts.inPreferredConfig = Bitmap.Config.RGB_565; //4.设置图片可以被回收,创建Bitmap用于存储Pixel的内存空间在系统内存不足时可以被回收 opts.inPurgeable = true; //6.设置解码位图的尺寸信息 opts.inInputShareable = true; opts.inJustDecodeBounds = true;// bitmap=BitmapFactory.decodeStream(is, null, opts); opts.inSampleSize = computeSampleSize(opts, -1, pictureSize); opts.inJustDecodeBounds = false; try { bitmap = BitmapFactory.decodeStream(is, null, opts); is.reset(); conn.disconnect(); } catch (Exception e) { // TODO: handle exception } return bitmap; } public static Bitmap revitionImageSize(String filePath, int pictureSize) { Bitmap bitmap = null; BitmapFactory.Options opts = new BitmapFactory.Options(); //2.为位图设置100K的缓存 opts.inTempStorage = new byte[100 * 1024]; //3.设置位图颜色显示优化方式 opts.inPreferredConfig = Bitmap.Config.RGB_565; //4.设置图片可以被回收,创建Bitmap用于存储Pixel的内存空间在系统内存不足时可以被回收 opts.inPurgeable = true; //6.设置解码位图的尺寸信息 opts.inInputShareable = true; opts.inJustDecodeBounds = true; bitmap=BitmapFactory.decodeFile(filePath, opts); opts.inSampleSize = computeSampleSize(opts, -1, pictureSize); opts.inJustDecodeBounds = false; try { bitmap = BitmapFactory.decodeFile(filePath, opts); } catch (Exception e) { // TODO: handle exception } return bitmap; } public static int computeSampleSize(BitmapFactory.Options options, int minSideLength, int maxNumOfPixels) { int initialSize = computeInitialSampleSize(options, minSideLength, maxNumOfPixels); int roundedSize; if (initialSize <= 8) { roundedSize = 1; while (roundedSize < initialSize) { roundedSize <<= 1; } } else { roundedSize = (initialSize + 7) / 8 * 8; } return roundedSize; } private static int computeInitialSampleSize(BitmapFactory.Options options, int minSideLength, int maxNumOfPixels) { double w = options.outWidth; double h = options.outHeight; int lowerBound = (maxNumOfPixels == -1) ? 1 : (int) Math.ceil(Math.sqrt(w * h / maxNumOfPixels)); int upperBound = (minSideLength == -1) ? 128 : (int) Math.min(Math.floor(w / minSideLength), Math.floor(h / minSideLength)); if (upperBound < lowerBound) { // return the larger one when there is no overlapping zone. return lowerBound; } if ((maxNumOfPixels == -1) && (minSideLength == -1)) { return 1; } else if (minSideLength == -1) { return lowerBound; } else { return upperBound; } }
0 0
- 安卓中关于图片从网络获取,压缩,上传,下载,缩略图,缓存的一些处理总结(四)
- 安卓中关于图片从网络获取,压缩,上传,下载,缩略图,缓存的一些处理总结(一)
- 安卓中关于图片从网络获取,压缩,上传,下载,缩略图,缓存的一些处理总结(二)
- 安卓中关于图片从网络获取,压缩,上传,下载,缩略图,缓存的一些处理总结(三)
- 关于Android中图片压缩(上传前的处理)
- 关于处理java从服务器读取图片然后上传替换后无法更新缓存的解决方案
- 自己动手从网络加载,缓存,压缩图片
- 文件(图片生产缩略图)的上传与下载
- 文件(图片生产缩略图)的上传与下载
- .net上传图片的处理类库(缩略图、水印)
- 关于Webview拍照或从相册上传图片处理总结
- 关于获取上传视频缩略图的方法
- ASP.NET(C#)图片上传压缩成缩略图的代码
- Web关于图片上传,缩略图及加水印,还有一些常用的方法
- Web关于图片上传,缩略图及加水印,还有一些常用的方法
- Android ListView从网络获取图片及文字显示---图片缓存,多线程处理
- 简单记录,图片的压缩(缩略图)
- Android中获取网络图片的方法(如果手机缓存里面有就从缓存获取)
- spring 配置事务传播特性
- 模仿淘宝评价的星级显示
- iPhone 应用中实现拨打电话功能的代码
- Exception
- C语言中,为什么字符串可以赋值给字符指针变量
- 安卓中关于图片从网络获取,压缩,上传,下载,缩略图,缓存的一些处理总结(四)
- JVM 学习笔记---Java虚拟机栈
- 自定义控件添加上自定义的控件属性。
- Android 一个绚丽的loading动效分析与实现!
- 矩阵的等价,相似,合同
- 好用的调用图库和拍照并裁剪功能(适用于上传头像)
- Java接口回调技术
- Java线程的生命周期
- RMQ 模板