查看大图之超长图处理

关于Android的超长图处理,可以很容易的找到解决方案,即用BitmapRegionDecoder来分区域生成bitmap来实现,但是在实践过程中发现,各中细节并不是那么容易,下面分享一下其中的技术难点。 实现目标 类似于微博和微信,对于超长图的处理。 双击进入超长图模式,超长图自动占满全屏方便阅读 滑动到哪里,哪个区域变得清晰 带惯性的流畅滑动 实现思路 捕获双击手势,利用matrix放大原始小图得到模糊的大图 捕获手势,利用scrollBy 和OverScroller 来实现滑动和惯性滑动 监听滑动事件,在滑动事件中判断是否需要获取新的bitmap。如需获取则开始异步获取bitmap 将异步获取到的bitmap在ondraw中绘制到屏幕的对应区域 手势处理 完整阅读

图片压缩之优化篇

之前曾经对Android中图片中的压缩方式进行分析和总结。详见图片压缩篇。基本涵盖了基础的压缩方法和思路。 但是在实际应用运用仍有许多地方需要优化地方才能够被应用。本文将就以下角度进行思考和优化: 一般性应用于朋友圈之类的图片依照怎样的参数进行哪些方面的优化处理? 如何有效的减少压缩时间? 如何避免压缩过程中的oom? 那我们就开始吧! 合理的压缩参数 首先我们要考虑我们应该用哪些参数来控制我们的压缩过程。下面是我的建议 最大宽度,最大高度 用于控制图片的最终分辨率。我们根据最宽高来进行等比例压缩。这个值我一般设置的为最大宽为1080 最大高为1920。这样的设置能满足一般照片之类的图片的要求,但是对于超长图和超宽图就会出现,压缩过度的问题,所以我们需要对超长图和超宽图进行单独的计算和处理。 首先要判断是否为长图,我这里的判断标准为宽/高或高/宽 6785843307

细数图片上传功能用到的知识点(图片压缩篇)

裁剪篇和选取篇,结合本文食用风味更佳~ 压缩目标 在讲压缩之前先要明确我们的目标 1. 对图片进行处理,使其满足我们对图片分辨率的要求; 2. 尽可能减小图片文件的大小,来节省上传时间和用户流量; 3. 避免oom; 压缩图片相关函数 明确目标之后首先我们来编写我们可能需要用到的函数 读取图片 从file或者uri中读取bitmap的这一步,我们要对图片进行第一次的处理。生成bitmap可以使用这个方法BitmapFactory.decodeStream(),由于目标图片可能分辨率很大,如果这里不进行处理很容易造成oom。 这里我们可以利用两个方式来降低bitmap所占用的内存。 inSampleSize 利用BitmapFactory.Options中的inSampleSize属性可以减小图片的分辨率。若inSampleSize= 完整阅读