Android Scroll分析

1.滑动效果是如何发生的

1.通过不断地改变View的坐标来实现这一效果

 

2.Android坐标系

(1)将屏幕最左上角的顶点作为Android坐标系的原点,从这个点向右是X轴正方向,从这个点向下是Y轴正方向。

(2)在触摸事件中使用getRawX(),getRawY()方法所获取的坐标同样是Android坐标系中的坐标。

 

3.视图坐标系

(1)描述子视图在父视图中的位置关系,视图坐标系原点是以父视图左上角为坐标原点,从这个点向右是X轴正方向,从这个点向下是Y轴正方向

 

4.触摸事件-----MotionEvent

(1)常用的事件常量(.....),在onTouchEvent(MotionEvent event)方法中通过event.getAction()方法来获取触摸事件的类型。

(2)#关于各种Android坐标系API   ******************************************************* P90

 

 

 

2.实现滑动的七种方法

1.layout方法

(1)layout(left,top,right,bottom),对自己重新布局

 

2.offsetLeftAndRight()与offsetTopAndBottom()

(1)这个方法相当于系统提供的一个对左右,上下移动的API的封装

 

3.LayoutParams

(1)layoutParams保存了一个View的布局参数,可以使用getLayoutParams()来获取一个View的LayoutParas,通过setLayoutParams来改变其LayoutParams.

(2)因为通过父布局获取,所以前提是你必须要有一个父布局,不然系统无法获取LayoutParams

 

4.scrollTo与scrollBy

 (1)scrollTo(x,y)表示移动到一个具体的坐标点(x,y)
(2)scrollBy(x,y)表示移动的增量为dx,dy
(3)scrollTo,scrollBy方法移动的是View的content,即让View的内容移动,如果在ViewGroup中使用scrollTo,scrollBy方法,那么移动的是所有的子View,但如果在View中使用,那么移动的将是View的内容,例如TextView,content就是它的文本.作用它们的父控件
(4)scrollBy(dx,dy)移动的是屏幕,控件会向反方向移动,要想实现跟随手指移动而滑动的效果,就必须将偏移量改为负值

int offsetX=x-lastX;
   int offsetY=y-lastY;
   ((View)getParent()).scrollBy(-offsetX,-offsetY);     //相当于父布局中所有控件都移动?


 

5.Scroller类

 (1)通过Scroller类可以实现平滑移动的效果,而不再是瞬间完成的移动.
 (2)使用Scroller类需要三个步骤
    a.初始化Scroller
    b.重写computeScroll()方法,实现模拟滑动---核心
    c.startScroll开启模拟过程

(3)invalidate()方法来通知View进行重绘

 

 

6.属性动画

 

 

7.ViewDragHelper

(1)使用方法比较复杂

(2)步骤

    a.初始化ViewDragHelper

    b.重写事件拦截方法,将事件传递个ViewDragHelper进行处理

    c.处理computerScroll()

    d.处理回调Callback

................看前面博客

 

 

 

 ----------------Form《Android群英传》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值