android系 统默认的启动之后的icon布局是4行4列,第一行由search widget完全占据。这样的设计对于小屏幕的手机比较合适,但是对于大屏幕的tablet之类的设备而言,巨大的屏幕上只能摆放12个icons(第一 行被search widget占据),就显得很空荡,icon之间的距离太宽了,显得不是那么美观。
那么如何来调整launcher home screen的布局呢?
查看Android_src\packages\apps\Launcher\res\layout-land\workspace_screen.xml
Android_src\packages\apps\Launcher\res\layout-port\workspace_screen.xml
一个是横屏,一个是竖屏的布局。调整字段,参数代表个数。
launcher:shortAxisCells="4" launcher:longAxisCells="4"
===============
第二部分:调整launcher:shortAxisCells="6" launcher:longAxisCells="6"
这样调整后,laucher home screen的icon变为6行,6列,显得比较紧凑了。但是search widget就比较别扭了,只占据了左边的一部分,并没有占据整个第一行。那么如何解决这个问题?
调整Android_src\packages\apps\Launcher\src\com\android\launcher\Widget.java
/**
* Represents one instance of a Launcher widget, such as search.
*/
class Widget extends ItemInfo {
int layoutResource;static Widget makeSearch() {
Widget w = new Widget();
w.itemType = LauncherSettings.Favorites.ITEM_TYPE_WIDGET_SEARCH;
w.spanX = 4;
w.spanY = 1;
w.layoutResource = R.layout.widget_search;
return w;
}
}可以看到指定的search widget x方向占据4个cells,y轴方向占据一个cells,这对原来4*4的布局是ok的。但是现在我们改为6*6的布局,就应该随之变化。我们做如下修改:
w.spanX = 6;
w.spanY = 1;这样整个修改效果完成。如下图所示
第三部分:附加,在android2.2版本的系统中,修改search widget的布局不是在Widget.java这个文件中,这个文件在这个版本中部存在。修改在
LauncherProvider.java中584行
// Original widgets might not have valid spans when upgrading
if (favoriteType == Favorites.ITEM_TYPE_WIDGET_SEARCH) {
values.put(LauncherSettings.Favorites.SPANX, 4);
values.put(LauncherSettings.Favorites.SPANY, 1);
} else {
values.put(LauncherSettings.Favorites.SPANX, 2);
values.put(LauncherSettings.Favorites.SPANY, 2);
}752行
private boolean addSearchWidget(SQLiteDatabase db, ContentValues values) {
ComponentName cn = getSearchWidgetProvider();
return addAppWidget(db, values, cn, 4, 1);
}第四部分:经过调试,发现Launcher2和Launcher里面的代码不同,经过以上的修改,在重启后,还是恢复成44的格局。还要修改一个地方
Launcher里面的常数。
static final int NUMBER_CELLS_X = 4;
static final int NUMBER_CELLS_Y = 4;