`
venus_chen
  • 浏览: 14742 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

Android 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事件。

分享到:
评论

相关推荐

    launcher中workspace代码

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

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

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

    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源码全面分析

    Android-launcher源码全面分析 一 Launcher默认界面配置(default workspace) 2 1 界面默认配置文件 2 2 LauncherProvider java的loadFavorites分析 3 二 Icon修改 界面布局调整 壁纸设置 5 1 图标大小和标题大小 5...

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

    仿照Launcher的Workspace实现左右滑动切换,学习用不错!

    Laucher 循环滑动workspace代码修改

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

    Launcher Workspace Demo

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

    Android_launcher源码全面分析

    一 Launcher默认界面配置(default workspace) 2 1 界面默认配置文件 2 2 LauncherProvider java的loadFavorites分析 3 二 Icon修改 界面布局调整 壁纸设置 5 1 图标大小和标题大小 5 2 Launcher 图标加入默认背景 ...

    android Launcher3设置默认桌面应用

    android Launcher3 设置默认桌面应用,供大家参考,具体内容如下 launcher3 的默认桌面应用是在 res/xml里 默认有4种样式 default_workspace_3x3.xml default_workspace_4x4.xml default_workspace_5x5.xml ...

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

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

    Launcher2源码分析

    桌面快捷图标的拖拽. Workspace切换AllApps流程 Workspace滑动. Launcher内容加载详细过程.

    android 9.0 launcher3 去掉抽屉式显示所有 app(代码详解)

    1、增加全局控制变量 sys.launcher3.is_full_app,用来动态切换 2、增加两套布局,对应有抽屉和无抽屉 3、去除 allAppsButton 4、将 AllAppsContainerView 中的图标加载到 Workspace 5、新安装的 app 自动添加图标到...

    精简的拖动代码

    android launcher的workspace代码精简后的代码,实现拖动效果

    android下实现视图切换

    android 视图 切换 workspace 模仿Launcher

    android桌面滑屏特效

    android应用,类似桌面(Launcher)的workspace或应用列表allapps里面,滑屏时所采用的炫酷特效,包括:标准、圆圈、层叠、波浪、立体翻转、车轮等几种效果!

    Android4.0.3 Launcher代码Eclipse运行打包

    项目导入使用Import->General->Existing Projects into Workspace,保证配置一样 详情请参考:http://blog.csdn.net/you_and_me12/article/details/12101071

    CustomLauncher3:自己修改的安卓系统桌面,基于Launcher3

    链接 调整###解决不能安装的问题解决可能因为相同权限声明或内容提供者冲突而不能安装的问题,需要插入包称为非com.android.launcher3,并放置所有com.android.launcher3的引用,如:ProviderConfig.AUTHORITY,...

    新版Android开发教程.rar

    也有分析认为,谷歌并不想做一个简单的手机终端制造商或者软件平台开发商,而意在一统传统互联网和 移 动互联网。----------------------------------- Android 编程基础 4 Android Android Android Android 手机新...

    自己平时做的android相关的总结

    android Launcher Android 运行环境搭建 Android:name什么时候加”.” Activity class {package/class} does not exist 问题的解决 Activity 中两次调用OnCreate的原因 ByteBuffer 和 FloatBuffer 的直接分配和非...

    android仿iphone主题效果的主菜单

    现在很多第三方Launcher((如360Launcher,GoLauncher)带有iphone主题,相信玩Android的人大都知道。 本例实现仿iphone主题的launcher的冰山一角。如下图:   从效果看,大概就能猜出用什么控件类(支持左右滑动的...

Global site tag (gtag.js) - Google Analytics