Launcher里的WorkSpace类

在Workspace.Java类实现,相关方法有: 
1) computeScroll():重写了父类的computeScroll();主要功能是计算拖动的位移量、更新背景、设置要显示的屏幕(setCurrentScreen(mCurrentScreen);)。 
2) dispatchDraw():重写了父类的dispatchDraw();主要功能是判断抽屉是否打开、绘制指定的屏幕,可以绘制当前一屏,也可以绘制当前屏幕和下一屏幕,也可以绘制所有的屏幕,这儿的绘制指显示屏幕上的child(例如:app、folder、Wiget)。和computeScroll()中的setCurrentScreen(mCurrentScreen);方法配合使用可以实现屏幕的拖动多少显示多少的功能。 
3) onMeasure():重写了父类的onMeasure();主要功能是设置屏幕的显示大小。由每个child的measure()方法设置。 
4) onLayout():重写了父类的onLayout();主要功能是设置屏幕的显示位置。由child的layout()方法设置。 
5) onInterceptTouchEvent():重写了父类的onInterceptTouchEvent();主要功能是在onTouchEvent()方法之前处理touch事件。包括:down、up、move事件。 
 用xy记录鼠标移动时的坐标值; 
 mLastMotionX和mLastMotionY记录了上次鼠标按下时的XY值,在ACTION_MOVE中赋值; 
 xDiff和yDiff记录xy与mLastMotionX、mLastMotionY差值的绝对值; 
 touchSlop为系统定义的标准值,初值为16; 
 当xDiff和yDiff大于touchSlop时就认为界面拖动了足够大的距离,屏幕就可以移动了; 
 当onInterceptTouchEvent()返回true时进入onTouchEvent()。 
6) onTouchEvent():重写了父类的onTouchEvent();主要功能是处理onInterceptTouchEvent()返回值为true时传递过来的touch事件。 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值