Closed SherlockGougou closed 4 years ago
ImageWatcher
的实现原理 是 封装手势+属性动画,对加载图片没有特殊处理。
W/OpenGLRenderer: Bitmap too large to be uploaded into a texture
当一次性尝试
加载超大图或超长图就会出现这个。 也就是楼主所说的4096问题。
我了解的 subsampling-scale-image-view
核心应该是 android.graphics.BitmapRegionDecoder
根据逻辑局部取出Bitmap
然后重写了onDraw
。
现在由于实现差异略大,没有想到很好的办法能友好的展示超大图或超长图
,所以对此功能需求明确的朋友,暂时慎用ImageWatcher
。
唯一能安慰你的是,咱可以显示gif。
所以如果加载超长图或者超大图的时候就不能用这个了么~~ @ielse
加载超长图显示不出来
interface Photo {
fun id(): Long
fun subsampling(): Boolean = false
}
重构了一次代码 超大图 的展示基于 subsampling-scale-image-view
被展示的数据需要实现Photo
接口制定subsampling为true 则会使用SubsamplingScaleImageView
展示图片
我写图片查看时也遇到过4096问题,且有时候的需求就是需要显示原始尺寸,不能压缩,所以寻求了这个轮子进行大图的区块加载:subsampling-scale-image-view,你可以参考参考