大家看这篇文章的时候,可能已经看过在launcher 2.1上实现2.2的屏幕标记(http://gqdy365.iteye.com/blog/897636),使用一个imageView显示不同的图片,看一下android里面launcher2里面源代码的实现,在drawable文件夹里面,可以找到一个home_arrows_left.xml的文件,内容如下:
同时,在launcher.xml文件中,
通过代码获取这个两旁的图片,然后我们再看一看在workspace.java里面的setIndicator()方法,
让我们找到mCurrentScreen这个参数的定义(73行):定义的一个整数,对应着home_arrows_left.xml里面的maxLevel,不同的参数ImageView上面显示不同的图片,用以标记页面。
在上面的launcher代码中,有android:onClick="previousScreen"注册了imageView的点击相应事件,在launcher.java中,对应的代码如下:
我们继续追踪,在workspace.java代码中的scrollLeft和 scrollRight()方法的代码: 先判断是否滑动到头,然后跳转到目标屏,snapToScreen()方法代码也在workspace中,代码如下: