`

launcher中Workspace类大致分析

UP 
阅读更多
在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事件。
3
0
分享到:
评论
1 楼 woshiguotao 2011-07-08  



l;


相关推荐

    launcher中workspace代码

    android源代码 http://blog.csdn.net/aomandeshangxiao/article/details/6940670#reply讲解所用部分

    仿照Launcher的Workspace实现左右滑动切换

    在 Launcher 中,Workspace 是一系列可以左右滑动的屏幕,每个屏幕都包含了若干个桌面图标和小部件。用户可以通过手指左右滑动来浏览不同屏幕,找到他们需要的应用或操作。 实现 Workspace 左右滑动切换的核心技术...

    拆解Launcher中的WorkSpace实现左右滑动效果

    在Android开发中,Launcher是用户接触系统的第一个界面,它通常包含主屏幕(也称为工作区WorkSpace)和其他应用快捷方式。工作区的左右滑动效果是Android Launcher的一个核心功能,让用户能够轻松地在不同的主屏幕...

    Launcher_default_workspace

    之前在Launcher上添加应用或者窗口小部件,需要找到包名和类名,以及位置等,然后手动在代码中添加。 现在只需要在桌面上拖动添加,然后运行该程序,就会生成当前桌面应用和窗口小部件的布局文件,保存在/mnt/sdcard...

    Launcher Workspace Demo

    为了访问因此成员,需要改变类搜索顺序,选择项目属性->Java Build Path->Order and Export,把所建立的User Libraries移到Android SDK的上面。 3 编译运行。如果发现myEclipse因内存小编译不了,修改myeclipse.ini...

    Android_launcher源码全面分析

    例如,Launcher可能涉及到的一些类包括Workspace类、DatabaseHelper类等。 Launcher的数据库 这部分内容描述了Launcher如何使用数据库来存储用户设置、收藏项等数据。数据的存储是通过一个或多个SQLite数据库来实现...

    android2.3 launcher分析三

    【Android 2.3 Launcher 分析】 Android 2.3 的 Launcher 是用户界面的核心部分,它作为设备的主要入口,提供用户访问应用程序、小部件和设置的界面。在深入分析之前,我们先了解一下 Launcher 的基本架构。 **...

    Launcher2源码分析

    在Android 4.0的Launcher2中,Workspace使用Scroller组件来处理滑动事件,通过计算物理滚动速度和加速度来实现平滑滚动。同时,Workspace的滑动还需要考虑到屏幕边缘的回弹效果和多工作区的支持。在多工作区模式下,...

    Laucher 上下左右循环滑动workspace代码修改(新)

    Android Launcher关于屏幕滚动管理的类Workspace,可以在此下载: http://www.oschina.net/code/explore/android-2.2-froyo/com/android/launcher2/Workspace.java 但是,此类只能管理固定数目的屏幕,且不能循环...

    android Launcher2文件夾功能分析

    **Android Launcher2 文件夹功能分析** 在Android操作系统中,Launcher是用户界面的核心组成部分,它扮演着桌面的角色,允许用户启动应用程序、创建快捷方式以及管理主屏幕上的图标布局。`Launcher2`是Android早期...

    Android 9.0 Launcher Workspace 加载

    加载Workspace入口在/packages/apps/Launcher3/src/com/android/launcher3/model/LoaderTask.java,想了解Launcher app的启动流程,可以先看看这篇文章,https://www.jianshu.com/p/0b273112cd7e 1、Workspace加载...

    Android_launcher的源码详细分析.pdf

    该源码分析了 Android_launcher 的主要组件和类,包括 Launcher.java、DragLayer.java、DragController.java、LauncherModel.java、Workspace.java、LauncherProvider.java、CellLayout.java、ItemInfo.java、User...

    launcher源码分析

    在本文中,我们将深入分析`launcher`源码,特别是`Launcher3`项目,来理解其工作原理和设计思路。 首先,我们来看`Launcher3`的主要组件。`Launcher3`是Android开源项目中的一个版本,它主要由以下几个关键部分构成...

    android2.3 launcher分析

    ### Android 2.3 Launcher分析 #### 架构概述 Android 2.3 版本中的Launcher采用的是经典的MVC(Model-View-Controller)架构模式。这种模式将应用程序分为三个核心部分:模型(Model)、视图(View)以及控制器...

    launcher3切屏动态效果

    在Android系统中,launcher3是默认的主屏幕应用,它提供了桌面图标、小部件以及应用抽屉等功能。这个源码着重关注的是在用户滑动屏幕时,如何平滑地展现屏幕之间的过渡,提升用户体验。 launcher3的动画效果涉及到...

    launcher类

    在Android系统中,`launcher`类扮演着至关重要的角色,它是用户与系统界面交互的入口,也就是我们常说的桌面应用。通常,`launcher`是系统启动的第一个Activity,它负责显示应用快捷方式、小部件以及主屏幕。理解`...

    Android Launcher抽屉类SlidingDrawer的使用

    在Android系统中,Launcher是用户界面的核心组成部分,它负责展示应用程序的快捷方式和主屏幕小部件,让用户体验到个性化和便捷的操作。而SlidingDrawer组件是Android SDK提供的一种交互控件,它允许开发者在界面中...

    android Launcher源码详解

    在加载阶段,Launcher 会加载所有应用程序图标,并将其显示在 Workspace 组件中。在运行阶段,Launcher 会根据用户的操作,例如滑动和点击,来更新桌面和应用程序图标的显示。 五、设计思想 Launcher 的设计思想是...

    android launcher3源码 循环翻页

    在源码中,我们可以看到Launcher3主要由以下几个核心类构成:Launcher、workspace、CellsContainer和PageIndicators等。 1. **Launcher**:这是整个应用的主入口,负责初始化和管理其他组件。其中,`onCreate()`...

    Laucher 循环滑动workspace代码修改

    根据gmailToyou大虾的指点,我修改了workspace的代码,已经成功实现了Launcher的循环滑动,这里将代码共享,以供参考,特别感谢gmailToyou的帮助!

Global site tag (gtag.js) - Google Analytics