自定义View这一块一直是我的心病。最近项目遇到需求类似于高德搜索界面的列表随手指移动。
饭要一点点吃先从最基本的View固定位置还是跟随手指哪个好手指开始。
简单的介绍一下两种方法的区别:
触摸点对于当前View的y坐标 |
触摸点相对于整个屏幕的y坐标 |
当前View相對于整个屏幕的Y轴坐标 |
这里推荐一下我很喜欢的
电脑重做了几次这个网站我都没丢。
- 固定位置还是跟随手指哪个好手指移动嘚需求很像属性动画,但这样子动画实现起来较为复杂并且流畅度并不好。所以我们选择重设View的属性并且调用
invalidate()
方法,实现View的另类移動 - 由坐标图可以知道:View.getY = event.getRawY - event.getY,就是说View的移动后Y坐标由上面公式得到(X轴同理)。为保证触摸点相对View的坐标一致我们在ACTION_DOWN的触摸事件下,将触摸坐标记录:
5.贴边动画只要计算View的中点X坐标View.getX+View.width/2,判断与屏幕宽度一半screenWidth/2的大小大就贴在右边,小就贴向左边执行属性动画就可以了。
发布了24 篇原创文章 · 获赞 3 · 访问量 1万+