launcher修改---launcher的搜索框和ProtipWidget(widget修改)(有图有真相)

news/2024/7/6 3:06:59

      有的时候,对launcher的开发,需要去掉launcher上面的搜索框和ProtipWidget,另外,ProtipWidget是android从2.2版本以后才添加上的。在找寻了n久以后,经过网友的帮张,原来定义文件在Launcher2/res/xml/default_workspace.xml,下面把文件贴出来:

<?xml version="1.0" encoding="utf-8"?>
<favorites xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher">
    <!--  Far-left screen [0] -->

    <!--  Left screen [1] -->
    <appwidget
        launcher:packageName="com.google.android.apps.genie.geniewidget"
        launcher:className="com.google.android.apps.genie.geniewidget.miniwidget.MiniWidgetProvider"
        launcher:screen="1"
        launcher:x="0"
        launcher:y="0"
        launcher:spanX="4"
        launcher:spanY="1" />
        
    <!--  Middle screen [2] -->
    <search
        launcher:screen="2"
        launcher:x="0"
        launcher:y="0" />

    <appwidget
        launcher:packageName="com.android.protips"
        launcher:className="com.android.protips.ProtipWidget"
        launcher:screen="2"
        launcher:x="0"
        launcher:y="1"
        launcher:spanX="4"
        launcher:spanY="1" />

    <!--  Right screen [3] -->
    <appwidget
        launcher:packageName="com.android.music"
        launcher:className="com.android.music.MediaAppWidgetProvider"
        launcher:screen="3"
        launcher:x="0"
        launcher:y="0"
        launcher:spanX="4"
        launcher:spanY="1" />

    <appwidget
        launcher:packageName="com.android.vending"
        launcher:className="com.android.vending.MarketWidgetProvider"
        launcher:screen="3"
        launcher:x="1"
        launcher:y="1"
        launcher:spanX="2"
        launcher:spanY="2" />

    <!--  Far-right screen [4] -->

</favorites>

然后,

 <!--  Middle screen [2] -->
    <search
        launcher:screen="2"//第几屏
        launcher:x="0"//
        launcher:y="0" />

    <appwidget
        launcher:packageName="com.android.protips"//widget所在的包名
        launcher:className="com.android.protips.ProtipWidget"//所显示的widget
        launcher:screen="2"//第几屏
        launcher:x="0"//图标x的位置,左上角x为0,向右递增,0-5共6个
        launcher:y="1"//图标y的位置,左上角y为0,向下递增,0-2共3个
        launcher:spanX="4"//在x方向上所占的格数
        launcher:spanY="1" />
这两个就是我们要找的搜索框和ProtipWidget(不知道该怎么翻译),search是google给我们提前定义好的,我们在这里直接使用就可以了,另外还有clock(闹钟)等。

       如果想在launcher上面添加什么快捷方式,ok,自己仿照以上形式添加即可,看哪个不顺眼,除去即可。

我们可以看一下他的效果图:



         而这个default_workspace.xml文件是如何被解析的呢?在launcher2的源代码里面有一个launcherProvider.java的类(635行),

 XmlResourceParser parser = mContext.getResources().getXml(R.xml.default_workspace);
                AttributeSet attrs = Xml.asAttributeSet(parser);
                XmlUtils.beginDocument(parser, TAG_FAVORITES);

                final int depth = parser.getDepth();

                int type;
                while (((type = parser.next()) != XmlPullParser.END_TAG ||
                        parser.getDepth() > depth) && type != XmlPullParser.END_DOCUMENT) {

                    if (type != XmlPullParser.START_TAG) {
                        continue;
                    }

                    boolean added = false;
                    final String name = parser.getName();

                    TypedArray a = mContext.obtainStyledAttributes(attrs, R.styleable.Favorite);

                    values.clear();                    
                    values.put(LauncherSettings.Favorites.CONTAINER,
                            LauncherSettings.Favorites.CONTAINER_DESKTOP);
                    values.put(LauncherSettings.Favorites.SCREEN,
                            a.getString(R.styleable.Favorite_screen));
                    values.put(LauncherSettings.Favorites.CELLX,
                            a.getString(R.styleable.Favorite_x));
                    values.put(LauncherSettings.Favorites.CELLY,
                            a.getString(R.styleable.Favorite_y));

                    if (TAG_FAVORITE.equals(name)) {
                        added = addAppShortcut(db, values, a, packageManager, intent);
                    } else if (TAG_SEARCH.equals(name)) {
                        added = addSearchWidget(db, values);
                    } else if (TAG_CLOCK.equals(name)) {
                        added = addClockWidget(db, values);
                    } else if (TAG_APPWIDGET.equals(name)) {
                        added = addAppWidget(db, values, a, packageManager);
                    } else if (TAG_SHORTCUT.equals(name)) {
                        added = addUriShortcut(db, values, a);
                    }

                    if (added) i++;

                    a.recycle();
                }

在这里提供了对文件的解析,大家可以看到,widget信息是被存储到数据库中的。另外,ProtipWidget是android从2.2版本以后才添加上的。

http://www.niftyadmin.cn/n/3741993.html

相关文章

零基础入门前端开发(二)

文章目录字符实体无序列表有序列表自定义列表图片标签文件地址字符实体 无序列表 用来表示一种没有先后顺序之分的列表项。 有序列表 用来表示一种有顺序之分的列表项。 自定义列表 自定义列表是一组标签&#xff0c;不过比较复杂&#xff0c;因为它出现了三对标签。 …

捐赠者讲述建造地震中未倒希望小学

资料图&#xff1a;最结实的希望小学&#xff0c;四川北川刘汉希望小学。 带领孩子们安全逃离的校长史少先&#xff08;左一&#xff09; 最结实的希望小学是怎样建成的——记四川北川刘汉希望小学和它的捐赠者 新华网四川北川&#xff15;月&#xff12;&#xff16;日电&a…

零基础入门前端开发(三)

表格 table标签的属性&#xff1a; tr标签的属性&#xff1a; td或者th标签的属性 空链接 锚点链接 如何实现锚点链接&#xff1f; 1、定义锚点 2、找到锚点 框架网页 将一个浏览器窗口分割为多个小窗口&#xff0c;每一个小窗口都可以存放一个HTML页面。 网页中颜色的…

汇编语言学习笔记(2)

文章目录汇编语言的组成&#xff1a;指令和数据CPU对存储器的读写各类存储器芯片内存地址空间小结汇编语言的组成&#xff1a; 1、汇编指令&#xff1a;机器码的助记符&#xff0c;有对应的机器码 2、伪指令&#xff1a;没有对应的机器码&#xff0c;由编译器执行&#xff0c;…

阳光下的星期天

周末总是过的那么快&#xff0c;在情愿中到来&#xff0c;在不情愿中离去&#xff0c;时间总是过的那么快&#xff0c;以前还有比较奢侈的长假&#xff0c;可能换做现在依然还不懂得珍惜&#xff0c;很多都说失去以后才知道珍惜&#xff0c;单依然知道后悔却依然不知所以的度过…

做校长当如安县桑枣中学校长叶志平

四川安县桑枣中学紧邻北川&#xff0c;在此次汶川大地震中也遭遇重创&#xff0c;但由于平时的多次演习&#xff0c;地震发生后&#xff0c;全校师生&#xff0c;2200多名学生&#xff0c;上百名老师&#xff0c;从不同的教学楼和不同的教室中&#xff0c;全部冲到操场&#xf…

Java IO学习笔记(一)

文章目录标准步骤文件拷贝字节数组流标准步骤 1、创建源 2、选择流 3、操作 4、释放 文件拷贝 代码如下&#xff1a; package com.liuyuhe;import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; …

记住这曾经平静美好的小城-汶川(组图)

震前的汶川汶川县位于四川省西北部、阿坝州境东南部的岷江两岸。是阿坝州的南大门&#xff0c;有“川西锁钥”和“西羌门户”之称。是大禹的故乡。县城-威州镇&#xff0c;居县北部杂谷 脑河与岷江交汇地&#xff0c;海拔1326米&#xff0c;距省会成都159公里&#xff0c;距州府…