请教大家一个问题,launcher里面有个HandleButton,点击之后会呈现所有app,我现在想把它直接放到Home界面,也就是直接放到桌面上面,去掉这个HandleButton,开机之后就可以直接看到这些app。workspace是一个viewgroup,我试过很多方法,效果都不是很好,比如动态增加屏幕数目,请大家给点思路?
解决方案 »
- 请问怎么设置全局的onTouchEvent事件呢?
- 在BroadcastReceiver里调用Activity里面的方法
- [求助]关于box2d引擎
- [求教]android实现通过数据线批量下载并安装apk
- 急需Android移动平台开发者1名与我共创未来(限大连,兼职)
- 有关OnAudioFocusChangeListener的问题
- java 调用JNI,在android模拟器2.1上能正常运行,2.2上出错
- 求助贴:android如何做下载拦截
- android4.0以上版本联网问题
- DEVICE_ATTR创建设备节点参数后无法调用到store函数
- ListView跳转问题
- 手机短信广播接收不到
我使用viewpager实现这个功能,但是要想要想实现其它功能很难!
我现在已经实现在workspace上面加载app,去掉了Handleview,接下来就是如何将图标排序,动态增加workspacescreen,以及系统增加一个将apk的时候如何实时的添加到桌面。看来launcher路还很长!
一、初始化时往favorites表里插入所有程序数据当然自己计算好screen,cellX,cellY
二、在bindWorkspace时,根据item所在的screen判断屏幕数是否够,不够的调用addView添加屏幕(可能有指示器或需要记录总屏幕数等,该添屏的方法可以自己封装)。
三、至于实时添加apk需要改造下launcher2那部分代码,因为它只在LauncherApplication启动的情况下才能接收到程序改变的广播(动态注册嘛,其实就是LauncherModel),修改成静态注册。这又分为两种情况:
1、Launcher未启动。只要改写数据库,添加、更新、删除嘛
2、Launcher已启动。把接收到的intent传给LauncherModel的onReceive处理吧,需要对数据库和workspace上的图标进行添加、更新、删除处理。附:我数据库中不存程序图标,只在bindWorkspace的时候异步读取刷新,但速度有点慢,如果你有更快的加载方法,交流下,共同进步。
如果你熟悉launcher是如何加载default_workspace.xml,然后解析以及如何添加到workspace里面的话,那就不难了。我的做法就是使用launcherProvider,加载系统所有app,然后写到数据库,通过launcher的binditems(是一个回调方法)添加到workspace里面。
是什么android项目,不会是修改launcher吧?launcher里面的设计思想,值的借鉴和学习!