ImageView特殊效果

  • 下拉刷新,调皮的海豚的实现原理

自定义View:SealDrawable extends RefreshDrawable implements Runnable



A Drawable is a general abstraction for "something that can be drawn."
  • 展示长图和宽图 

一、长图宽图的横向纵向滑动,自定义一个View:CylinderImageView。
二、长图显示思路:
1、使用decodeRegion将长图分成若干个区域。
2、使用listView分页显示别分成的若干个区域。

  • 不同形状的ImageView
PPQ:RoundedImageView.java    -->   canvas.drawRoundRect

PaoPao:  facebook  fresco

  • 展示高清图

高清大图两种方案:

1、服务端区分高清图和普通图url地址
2、自定义View,使用decodeRegion生成局部高清图

在项目中,采用Fresco下载和查看高清原图, 使用Fresco 监听图片下载状态(重写ControllerListener
显示下载进条:自定义Drawable继承ProgressBarDrawable,重写onLevelChanged(int level){}
遇到的问题:
同一个View控件查看大图和原图,切换url渲染会有一段黑屏,在中间时刻,给出上一个显示出来的缓存图片,转为Drawable存放在placeholder中解决

Fresco 监听图片下载
停止或暂停全部fresco图片下载的方法
Fresco.getImagePipeline().isPaused();
Fresco.getImagePipeline().pause();
Fresco.getImagePipeline().resume();
如何内存管理? 设置SampleSize: ImageRegionDecoder /  calculateInSampleSize
如何加快加载速度? DetailDiskCache.getInstance().get(HttpUtils.getAccessUrl(highUrl))


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值