快速实现 ListView下拉,图片放大刷新操作
2015-09-21 15:15
267 查看
今天要写的这个效果属于刷新类,比较实用,像很多流行的 app 都是用了这种效果,大家熟知的QQ空间、微博个人主页等,这个效果在 github 上也有别人实现好的源码,点击查看。这里也参考了上面的源码;还是那句话,看 blog主要是学习其中的原理和思路。
动态效果图
图片放大的原理是什么呢?
通过改变图片显示控件 ImageView 的父控件的高度,比如这里的头部 View 是一个 FrameLayout,FrameLayout 中再 通过 add 方法把图片 View 添加进去,addView(ImageView),ImageView有几个属性是要特别注意的,ImageView 的放缩类型为从中间截取
并且宽高设为匹配父控件;所以想要图片有放大效果,只需设置 FrameLayout 的 LayoutParams 中的 height值,通过改变 height 的值从而改变 ImageView 的显示高度。讲的有点混乱,可以结合下面的代码来理解。
如果你是对手势事件处理很了解的朋友,对这个效果的实现应该没有什么难度,唯一的一点就是判断何时该放大图片,何时该滚动ListView。
这里就直接贴代码:
比较难理解的地方都做了注释,所以。。。应该还是很好理解的。
总结:
今天 blog的一个难点就是,手势的处理,下拉放大的条件判断;针对这种问题,我也没有很好的解决方案,我的经验就是,直接通过 打印 Log 的方式来寻找规律,因为有的时候想的挺烦的,而且逻辑很容易混乱。
接着是图片放大的原理,知道了就很好实现此功能。
动态效果图
图片放大的原理是什么呢?
通过改变图片显示控件 ImageView 的父控件的高度,比如这里的头部 View 是一个 FrameLayout,FrameLayout 中再 通过 add 方法把图片 View 添加进去,addView(ImageView),ImageView有几个属性是要特别注意的,ImageView 的放缩类型为从中间截取
如果你是对手势事件处理很了解的朋友,对这个效果的实现应该没有什么难度,唯一的一点就是判断何时该放大图片,何时该滚动ListView。
这里就直接贴代码:
总结:
今天 blog的一个难点就是,手势的处理,下拉放大的条件判断;针对这种问题,我也没有很好的解决方案,我的经验就是,直接通过 打印 Log 的方式来寻找规律,因为有的时候想的挺烦的,而且逻辑很容易混乱。
接着是图片放大的原理,知道了就很好实现此功能。
相关文章推荐
- 【bzoj2751】【HAOI2012】【容易题】【数学】
- iOS9 兼容那点事
- linux/UNIX上的inode、硬链接以及软连接
- ios开发者修养
- OCP-V13-686
- Cocos Studio study ---------- 使用CocosStudio1.6制作 界面,并结合代码制作游戏
- TCP/IP协议学习--链路层
- https和http有何区别?
- sed awk shell传参问题
- RecyclerView的使用
- 线流中的锁
- TradeStation简介
- 我的自白
- 【svn】设置过滤文件
- 判断二叉树是否平衡、是否完全二叉树、是否二叉排序树
- Java调用Telnet示例
- FirstBlood
- 多线程
- knockoutJS学习笔记03:knockout简介
- linux ubuntu服务器中搭建tomcat