现在的位置: 首页 > 综合 > 正文

Launcher定制

2013年09月07日 ⁄ 综合 ⁄ 共 5935字 ⁄ 字号 评论关闭

 1. 修改Launcher中显示的预置app default_workspace.xml <favorite launcher:packageName="com.tecom.welly.myandroid" launcher:className="com.tecom.welly.myandroid.MainFrame" launcher:screen="1" launcher:x="3" launcher:y="3" />packageName:包名 className :在桌面上显示的activity
screen : 在哪一个screen添加 x,y: 在screen中的位置
2. 修改屏幕数目(1)launcher.java    

    static final int SCREEN_COUNT = 7;
    static final int DEFAULT_SCREEN = 3;
    static final int NUMBER_CELLS_X = 4;
    static final int NUMBER_CELLS_Y = 4;

(2)launcher.xml
<include android:id="@+id/cell6" layout="@layout/workspace_screen" />
<include android:id="@+id/cell7" layout="@layout/workspace_screen" />

(3)home_arrows_left.xml、 home_arrows_right.xml

(4)新增资源文件:
        home_arrows_left_5.xml
        home_arrows_left_6.xml
        home_arrows_right_5.xml
        home_arrows_right_6.xml
        ic_home_arrows_5_focus.png
        ic_home_arrows_5_focus_right.png
        ic_home_arrows_5_normal.png
        ic_home_arrows_5_normal_right.png
        ic_home_arrows_5_press.png
        ic_home_arrows_5_press_right.png
        ic_home_arrows_6_focus.png
        ic_home_arrows_6_focus_right.png
        ic_home_arrows_6_normal_right.png
        ic_home_arrows_6_press.png
        ic_home_arrows_6_press_right.png
        ic_home_arrows_6_normal.png

3. 在Launcher桌面添加widget

5. 设置墙纸
替换图片
frameworks/base/core/res/res/drawable/default_wallpaper.jpg
mm
make snod

6. 修改快捷方式的大小

7. 修改桌面的行列

(1)修改行列
Android_src/packages/apps/Launcher/res/layout-port/workspace_screen.xml

launcher:shortAxisCells="4" launcher:longAxisCells="4"
              行                                             列
改为:
launcher:shortAxisCells="4" launcher:longAxisCells="6"

(2)修改widget

这样调整后,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;
    }
}

修改为:
        w.spanX = 6;
        w.spanY = 1;

8. 删除默认widget

(1) 删除数据库
launcherProvide.java
launcher.db

 

default_workspace.xml
打开后显示如下的内容

此时可以在这个文件里进行修改了,可以在这里增加删除各个快捷方式、插件等,这里介绍三类:谷歌定义的插件、程序快捷方式、程序插件,简单的说明一下:

快捷方式说明
<favorite                          //程序快捷键
    launcher:className="com.android.browser.BrowserActivity"    //该应用的类
    launcher:packageName="com.android.browser"                //该应用的包名
    launcher:screen="2"           //第3屏,0-4屏共5屏
    launcher:x="0"                    //图标X位置,左上角第一个为0,向左递增,0-5共6个
    l0auncher:y="3"/>            //图标Y位置,左上角第一个为0,向下递增,0-2共3个

插件说明
<appwidget                           //插件
    launcher:className="com.android.music.MediaAppWidgetProvider" //该应用的类
    launcher:packageName="com.android.music"                //该应用的包名
    launcher:screen="4"             //第5屏,0-4屏共5屏
    launcher:x="2"                      //图标X位置,左上角第一个为0,向左递增,0-5共6个
    launcher:y="1"                     //图标Y位置,左上角第一个为0,向下递增,0-2共3个
    launcher:spanX="2"             //在x方向上所占格数
    launcher:spanY="1"
/>
        //在y方向上所占格数

其中需创建的应用的包名和类都需将相应的APK破解之后才能得到。(不在本文介绍范围内,有需要请自行google)

< search                    //搜索栏
launcher:screen="1"            //第2屏
launcher:x="0"                     //图标X位置
launcher:y="1"/>                //图标Y位置

像搜索栏(search)、小时钟(clock)等这些插件,谷歌已将之默认已配置好,所以只要指定其第几屏和X、Y坐标即可。例如上面的search

本人就喜欢将一些常用的快捷方式放在主桌面,如下代码所示:
==============================================================================
<?xml version="1.0" encoding="UTF-8"?>
<favorites
  xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher2">
    <search
        launcher:screen="2"
        launcher:x="0"
        launcher:y="0" />
    <favorite
        launcher:className="com.android.browser.BrowserActivity"
        launcher:packageName="com.android.browser"
        launcher:screen="2"
        launcher:x="0"
        launcher:y="3" />
    <favorite
        launcher:className="android.rk.RockVideoPlayer.RockVideoPlayer"
        launcher:packageName="android.rk.RockVideoPlayer"
        launcher:screen="2"
        launcher:x="1"
        launcher:y="3" />
    <favorite
        launcher:className="android.rk.RockAudioPlayer.RockAudioPlayer"
        launcher:packageName="android.rk.RockAudioPlayer"
        launcher:screen="2"
        launcher:x="2"
        launcher:y="3" />
    <favorite launcher:className="com.rk.niepix.FolderBrowser"
        launcher:packageName="com.rk.niepix"
        launcher:screen="2"
        launcher:x="3"
        launcher:y="3" />
    <favorite launcher:className="org.curiouscreature.android.shelves.activity.ShelvesActivity"

        launcher:packageName="org.rock.zlibrary.ui.android"
        launcher:screen="2"
        launcher:x="4"
        launcher:y="3" />
    <favorite
        launcher:className="com.arron.taskManager.taskManager2.ui.activities.HomeActivity"

        launcher:packageName="com.arron.taskManager"
        launcher:screen="2"
        launcher:x="5"
        launcher:y="3" />
    <appwidget
        launcher:className="com.android.settings.widget.SettingsAppWidgetProvider"

        launcher:packageName="com.android.settings"
        launcher:screen="4"
        launcher:x="0"
        launcher:y="0"
        launcher:spanX="2"
        launcher:spanY="1" />
    <appwidget launcher:className="com.android.music.MediaAppWidgetProvider"
        launcher:packageName="com.android.music"
        launcher:screen="4"
        launcher:x="2"
        launcher:y="1"
        launcher:spanX="2"
        launcher:spanY="1" />
</favorites>
==============================================================================
修改完成后,将之保存,并用Apktool将之重新编译:
Apktool b launcher2

编译OK后,生成的新的APK位于Launcher2\dist目录内,用Winrar打开生新成的Launcher2.apk将APK内的\res\xml\default_workspace.xml拖出来,然后再打开固件包内的system\app\Launcher2.apk,用刚才拖出来的default_workspace.xml替换APK中相同的文件。
此时再将system打包并升级即可看到修改后的效果了,如下图示:

以前替换APK中的文件时,总以为要重新签名程序才能使用,后来发现,即便不签名只要直接替换相同的文件都可以正常工作。所以就无需再重新签名了,因为RK的android系统重新签名APK后出问题的机率非常的大。

Launcher修改之一完毕!

 

抱歉!评论已关闭.