由于做项目需要修改Launcher的主屏幕的屏幕数,所以研究了一下,以此记录。
1 第一步、修改Launcher.java 中,定义屏幕数和默认屏幕
static final int SCREEN_COUNT = 5;//总屏幕数
static final int DEFAULT_SCREEN = 2;//第一页是从0开始计数,这里是把第3页作为默认屏幕
这里可以根据自己的需要进行修改。
2 第二步、修改launcher.xml,看下面:
<!-- The workspace contains 5 screens of cells -->
<com.android.launcher2.Workspace
android:id="@+id/workspace"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="@dimen/workspace_left_padding"
android:paddingEnd="@dimen/workspace_right_padding"
android:paddingTop="@dimen/workspace_top_padding"
android:paddingBottom="@dimen/workspace_bottom_padding"
launcher:defaultScreen="2"
launcher:cellCountX="@integer/cell_count_x"
launcher:cellCountY="@integer/cell_count_y"
launcher:pageSpacing="@dimen/workspace_page_spacing"
launcher:scrollIndicatorPaddingLeft="@dimen/workspace_divider_padding_left"
launcher:scrollIndicatorPaddingRight="@dimen/workspace_divider_padding_right">
<include android:id="@+id/cell1" layout="@layout/workspace_screen" />
<include android:id="@+id/cell2" layout="@layout/workspace_screen" />
<include android:id="@+id/cell3" layout="@layout/workspace_screen" />
<include android:id="@+id/cell4" layout="@layout/workspace_screen" />
<include android:id="@+id/cell5" layout="@layout/workspace_screen" />
</com.android.launcher2.Workspace>
这里可以看到导入了5个workspace_screen,这里需要根据你上面定义的总屏幕数来进行添加或者删减,还有一个属性,你可能也注意到了,就是
launcher:defaultScreen="2"
这里也同样需要根据你上面定义的默认屏幕来进行修改。
3 第三步、修改Workspace.java 中的
mDefaultPage = a.getInt(R.styleable.Workspace_defaultScreen, 0);
修改为和res/xml/default_workspace.xml 做出相应的修改。
default_workspace.xml中熟悉解析:
(1) 桌面widget标签:
<appwidget
launcher:packageName="com.android.deskclock"
launcher:className="com.android.alarmclock.AnalogAppWidgetProvider"
launcher:screen="2"
launcher:x="1"
launcher:y="0"
launcher:spanX="2"
launcher:spanY="2" />
(2) 快捷方式的说明:
<favorite
launcher:packageName="com.android.calendar"
launcher:className="com.android.calendar.AllInOneActivity"
launcher:screen="2"
launcher:x="1"
launcher:y="4" />
(3) 下面列出default_workspace.xml支持的标签和属性:
① default_workspace.xml支持的标签有:
favorite:应用程序快捷方式
shortcut:链接,如网址、本地磁盘路径等
search:搜索框
clock:桌面上的钟表widget
appwidget:桌面widget
②default_workspace.xml支持的属性有:
launcher:title:图标下面的文字
launcher:icon:图标引用
launcher:uri:链接地址,链接网址用的;使用shortcut标签就可以定义一个超链接,打开某网址等。
launcher:packageName:应用程序的包名
launcher:className:应用程序的启动类名
launcher:screen:图标所在的屏幕编号
launcher:x:图标在横向排列上的序号
launcher:y:图标在纵向排列上的序号
launcher:spanX:在x方向上所占格数
launcher:spanY:在y方向上所占格数
注:主屏幕上的每屏的排列格数,也是可以修改的:
res/values/config.xml中:
<integer name="cell_count_x">4</integer>
<integer name="cell_count_y">4</integer>
这说明主屏幕上的每屏的排列,都是4*4的,即横向可以放置4个图标,纵向也可以放置4个图标。
至此,基本就可以实现修改Launcher的主屏幕的屏幕数了。