如何调整launcher screen的布局


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


  1. /**
  2. * Represents one instance of a Launcher widget, such as search.
  3. */
  4. class Widget extends ItemInfo {
  5. int layoutResource; static Widget makeSearch() {
  6. Widget w = new Widget();
  7. w.itemType = LauncherSettings.Favorites.ITEM_TYPE_WIDGET_SEARCH;
  8. w.spanX = 4;
  9. w.spanY = 1;
  10. w.layoutResource = R.layout.widget_search;
  11. return w;
  12. }
  13. }
复制代码


可以看到指定的search widget x方向占据4个cells,y轴方向占据一个cells,这对原来4*4的布局是ok的。但是现在我们改为6*6的布局,就应该随之变化。我们做如下修改:

  1. w.spanX = 6;
  2. w.spanY = 1;
复制代码

这样整个修改效果完成。如下图所示

land[3].jpg

4.jpg


第三部分:附加,在android2.2版本的系统中,修改search widget的布局不是在Widget.java这个文件中,这个文件在这个版本中部存在。修改在

LauncherProvider.java中584行

  1. // Original widgets might not have valid spans when upgrading
  2. if (favoriteType == Favorites.ITEM_TYPE_WIDGET_SEARCH) {
  3. values.put(LauncherSettings.Favorites.SPANX, 4);
  4. values.put(LauncherSettings.Favorites.SPANY, 1);
  5. } else {
  6. values.put(LauncherSettings.Favorites.SPANX, 2);
  7. values.put(LauncherSettings.Favorites.SPANY, 2);
  8. }
复制代码

752行

  1. private boolean addSearchWidget(SQLiteDatabase db, ContentValues values) {
  2. ComponentName cn = getSearchWidgetProvider();
  3. return addAppWidget(db, values, cn, 4, 1);
  4. }
复制代码

第四部分:经过调试,发现Launcher2和Launcher里面的代码不同,经过以上的修改,在重启后,还是恢复成44的格局。还要修改一个地方

Launcher里面的常数。

  1. static final int NUMBER_CELLS_X = 4;
  2. static final int NUMBER_CELLS_Y = 4;
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值