如何调整launcher2屏幕的布局

本文介绍了如何调整Android Launcher2的屏幕布局,包括搜索widget的占用情况,以适应大屏幕设备。通过修改workspace_screen.xml文件中的参数设置行和列的数量,以及修改Widget.java和LauncherProvider.java中的代码,实现6行6列的布局,并调整搜索widget占据6个单元格,使得布局更加紧凑美观。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;

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

landport

第三部分:附加,在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;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值