您的位置:首页 > 其它

分享:通过Launcher里的WorkSpace完成桌面的3D转屏效果(有源码)

2012-06-30 15:54 211 查看
(http://www.eoeandroid.com/viewthread.php?tid=27079&extra=&page=1)大家复制起来研究太麻烦,要我上传附件,已经上传了,附件里面的改动比较大而且注释不那么详细了,

出于多效率的考虑,没有用多线程了。下面提到的问题也都已解决,有什么好的建议大家再提出来一起讨论。





Workspace.rar (11.97 KB)

/*

这个workspace可以看做一个整体,X坐标上的范围是0-960

它共有3页,每个页即为一个child,每个child里面都有很多单元格,单元格中可以放置shortcut,

active folder, widget,他们分别会横向纵向占用不同的单元格数。

通过使用ScrollTo(int,int)这个方法可以把workspace这个整体移动,来显示不同的页面

比如:

ScrollTo(0,0) 为第一页

ScrollTo(320,0) 为第二页

ScrollTo(640,0) 为第三页

如果有更多页

ScrollTo(640,0) 为第四页

ScrollTo(960,0) 为第五页

.

.

.

其实页面上的被添加了组件后,这些组件我们看不见,

但是你点击某些看不见的“空位置”也是可以进入。

比如我们在中间页的左上角添加了一个短信的shortcut,如果不调用

drawChild(canvas, getChildAt(1), drawingTime)或者绘制出来我们是

看不见这个icon的,但是点击屏幕左上角却可以进入短信。

流程:

1.得到3个页的bitmap,页面上一有变化就重新得到bitmap

2.拖动屏幕时让屏幕不滑动也不按原始方式换页,而进行相应

的两个bitmap的变换操作来达到3D效果(不用GL,这样可以更有效率)

3.通过拖动的起始和结束坐标判断是否换页,应该如何换页

4.由于使用drawChild()把icon画到页上的时候,在进行2个bitmap的变换达到3D效果时

图像会出现从叠,故没有使用它,而是使用Canvas.drawBitmap()把相应bitmap张贴到

相应的页上,这样可以我们就可以知道屏幕的何处有何应用图标了

背景还没做好,准备搞个全黑,转的时候的3个Bitmap的背景搞成桌面背景,这样用户

还可以更换,3D效果有了,但需要改善

希望大家把自己的研究成果都分享出来,大家共同学习,共同进步
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: