luancher:程序的启动器,简单的说就是应用程序的入口菜单。
在最后将得到这样一个效果:
要构建一个最简单的launcher,需要有两个主步骤:
1,得到所有应用的图片和标题
2,将这些图片和标题显示在屏幕中
3,实现触摸和按键效果
上面两个步骤看上去很简单,但是在我做这个项目的时候大概至少写了30多个Java文件。
I .先从第二步骤开始,首先应用肯定不能在一个页面中排列完,所以需要有多个页面,其次每个页面中需要对该页面的所有应用进行
矩阵排列。
实现这个步骤至少有几个公共的类必须完成:
ViewGroup ,一个线性列表,存放页和当个应用元素
GridView, 对列表中的应用元素进行矩阵式排列
ViewPage, 管理不同的页
ActorView,当个应用的描述
由于该luancher是在gdx架构起来的,所有不能使用系统自带的View类,所以上面几个类都要自己实现。这些类的原型在系统文件中都能找到,
所以--------我们可以抄!!!!!
II. 实现第一步骤,要获取应用的名字图片还是很简单的,SDK中提供了接口。但是我们要将图片的名字和图片组合成一张图片,最后显示在
surface中,而且这些图片是显示在GPU中,所以需要将组合后的bmp图片最终转换成texure图片。这个过程中是整个luancher最复杂的部分。
III.触摸和按键效果可以继承相应的接口,实现View的坐标变换就可,看上去简单。
由于luancher在非主线程中起跑,而应用资源又必须在主线程中获取所以在开发过程中需要不断的在主线程和GL线程中切换,繁琐!