Android Launcher 一些默认修改(一)

Android Launcher 一些默认修改(一)


1.如何设置Launcher2、Launcher3的壁纸同步

由于SprdLauncher1和SprdLauncher2中支持分开设置主屏壁纸和锁屏壁纸,
所以锁屏在获取壁纸的时候,会获取对齐的锁屏壁纸类型。
目前原生Launcher2和原生Launcher3不支持分开设置,
所以要保证原生Launcher2和原生Launcher3设置壁纸的时候,锁屏跟主屏保持一致,
只需要锁屏在获取壁纸的时候,获取的壁纸类型也是主屏壁纸类型。

修改如下:
请定位到KeyguardViewManager.java中的maybeCreateKeyguardLocked方法:
把Drawable drawable = wm.getDrawable(WallpaperInfo.WALLPAPER_LOCKSCREEN_TYPE);
修改为Drawable drawable = wm.getDrawable(WallpaperInfo.WALLPAPER_MAINMENU_TYPE); 

2.如何修改使Launcher2中文件夹图标名称与应用名称保持水平

请定为到/packages/apps/Launcher2/res/values/dimens.xml文件中

调整下面的值即可:

  2dp

3.android4.4 Launcher中如何隐藏主界面应用图标的应用名称?

以sprdLauncher2举例:
请定位到vendor/sprd/UniverseUI/SprdLauncher2/src/com/android/sprdlauncher2/CellLayout.java文件:
然后定位到addViewToCellLayout方法:
        if (child instanceof BubbleTextView) {
            BubbleTextView bubbleChild = (BubbleTextView) child;
            bubbleChild.setTextVisibility(!mIsHotseat);
        }
修改为:
        if (child instanceof BubbleTextView) {
            BubbleTextView bubbleChild = (BubbleTextView) child;
            bubbleChild.setTextVisibility(false);
        }

4.如何在sprdLauncher2中隐藏一个应用图标?

以隐藏百度地图为例,修改如下:
请定位到/vendor/sprd/UniverseUI/SprdLauncher2/src/com/android/sprdlauncher2/LauncherModel.java文件,
查找verifyApplications方法:
    if (tmpInfos.isEmpty()) {
        added.add(app);
         }
修改为:
    if (tmpInfos.isEmpty()) {
        ComponentName cn = app.componentName;
     Log.e(TAG,"cn = "+cn);
     if(cn != null && !cn.equals("")){
        if(!cn.toString().equals("ComponentInfo{com.baidu.BaiduMap/com.baidu.BaiduMap.BaiduMap}")){
                  added.add(app);
        }
     }

     }

5.如果实现Launcher2中菜单列表背景半透明效果?

Android4.4中的Launcher2默认没有开启菜单列表背景透明效果,纯黑色背景效果不是太好,如果需要开启菜单背景透明效果,可以参考如下修改来实现:

diff --git a/packages/apps/Launcher2/res/layout/apps_customize_pane.xml b/packages/apps/Launcher2/res/layout/apps_customize_pane.xml
index a9d7ded..70ee6b5 100644
--- a/packages/apps/Launcher2/res/layout/apps_customize_pane.xml
+++ b/packages/apps/Launcher2/res/layout/apps_customize_pane.xml
@@ -16,7 +16,7 @@
 
+    android:background="#00000000">
     

             

6.0如何让launcher不被一键清理?

一键清理应用的目录:

\packages\apps\RamOptimize



在\res\values\arrays.xml文件里有对不需要清理的应用进行配置:

    
    
     com.sprd.ramoptimizer
     com.android.sprdlauncher2

      ...

    


    
    
        com.sprd.ramoptimizer
        com.sprd.videoswallpapers
    


如果想让自己的应用不被清理,把包名添加到recent_keep_app数组即可。

7.0LOCAL_OVERRIDES_PACKAGES的作用

关于android.mk中的LOCAL_OVERRIDES_PACKAGES,此变量可以使定义的其它模块无法编译生成到系统中,使用本模块作为替换。

比如在SprdLauncher2的android.mk里

定义了LOCAL_OVERRIDES_PACKAGES := Launcher3

在使用了SprdLauncher2的工程里就无法集成原生的 Launcher3。

8.如何提升Launcher中盒子等滑动特效的流畅度

Launcher中滑动特效的文件在:

SprdLauncher1\src\com\sprd\launcher3\effect

SprdLauncher2\src\com\sprd\sprdlauncher2\effect


盒子等特效相比于page特效主要慢在ALPHA绘制上,因为ALPHA绘制本身耗时就比较长,所以:

如果想提升滑动特效流畅度,请删除特效中getTransformationMatrix函数中关于ALPHA变化的代码:

如:

CrossEffect.java中:

去掉以下代码:

        float absOffset = Math.abs(offset);
        float mAlpha = 1.0F - absOffset * 0.4f;
        view.setAlpha(mAlpha);

9.如何把SprdLaucher2的hotseat图标底下把对应的应用名称item显示出来?

1.代码调整:

CellLayout.java 里面的BubbleTextView bubbleChild = (BubbleTextView) child; 
                                     bubbleChild.setTextVisibility(!mIsHotseat); 改为bubbleChild.setTextVisibility(true);

Workspace.java 里面的((FolderIcon)child).setTextVisible(false);改为 ((FolderIcon)child).setTextVisible(true);



2.修改hotseat.xml布局文件:

  根据需要调整,例如:

修改为

    

10.如何修改launcher中应用图标的行数和列数?

横屏:
    \packages\apps\Launcher2\res\layout-land\workspace_screen.xml

竖屏
    \packages\apps\Launcher2\res\layout-port\workspace_screen.xml

修改里面格子的数量

    launcher:shortAxisCells=”4″

    launcher:longAxisCells=”4″

还可以调整一下格子们与左右和上下的边距

    launcher:longAxisStartPadding=”65dip”

    launcher:longAxisEndPadding=”65dip”

    launcher:shortAxisStartPadding=”0dip”
    launcher:shortAxisEndPadding=”0dip”

11.如何修改launcher的屏幕数

首先,在Launcher.java代码中修改总的页数和默认显示页:

    static final int SCREEN_COUNT = 5;
    static final int DEFAULT_SCREEN = 2;//第一页是从0开始计数,这里是把第三个页面作为默认首页  

    第一个是定义屏幕个数,第一个参数是默认的首页。

其次:还需要修改 launcher.xml

    
    
        
        
        
        
        
    

    导入了五个workspace_screen,在这里,参照上面修改的参数,添加或者删除workspace_screen。

    并且 launcher:defaultScreen="2">  定义的defaultScreen.要修改成对应的值。


另外,修改workspace.java中获取不到值时的默认首页,确保异常情况下默认首页一致 

        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Workspace, defStyle, 0);
        mDefaultScreen = a.getInt(R.styleable.Workspace_defaultScreen, 1);


最后,对 res/xml文件中default_workspace.xml做出相应的修改。这里面是workspace初始显示的icon和widget。

12.如何添加壁纸资源到壁纸列表?

解决: 以wallpaper_lake.jpg为例

1.拷贝壁纸图片 wallpaper_lake.jpg和wallpaper_lake_small.jpg 到相应目录

packages/apps/Launcher2/res/drawable-对应像素/wallpaper_lake.jpg
packages/apps/Launcher2/res/drawable-对应像素/wallpaper_lake_small.jpg


2.在 res/values-hdpi/wallpapers.xml 中添加wallpaper_lake条目
     
+        wallpaper_lake
          ..

此时,长按桌面,选择壁纸选项,就会在壁纸列表看到一个新的壁纸。

13.如何更换launcher中点击应用的高亮背景

workspace(idle)点击快捷图标的高亮背景为:

packages/apps/Launcher2/res/drawable/pressed_application_background.9.png


workspace(idle)方向键选中的高亮背景:

/packages/apps/Launcher2/res/drawable-hdpi/focused_application_background.9.png

Mainmenu(主菜单)点击应用的高亮背景为:

packages/apps/Launcher2/res/drawable-hdpi/background_icon.9.png

默认的高亮背景是点九格式的png文件,这样可以适应不同的布局大小,也可以设置不是点九的图片!

更换上面的图片实现自定义的背景

14.如何配置launcher使用大内存?

在launcher的AndroidManifest.xml中可以配置launcher使用大的堆内存,这样可以在一定程度上避免内存不足出现的out of memory错误。配置launcher使用大内存需要更改的属性名称为android:largeHeap。如下所示:

    
可以在values文件夹的config.xml中修改largeHeap的属性值。如下所示:

false

15.如何更改系统默认墙纸

默认墙纸位置在frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg

不同分辨率的项目在对应的drawable目录下。 



更改了默认墙纸后,为了与墙纸设置里面待选的墙纸保持一致,最好同步修改对应launcher下的墙纸。 

launcher下墙纸位置:package/apps/Launcher2/res/drawable-nodpi/  

你可能感兴趣的:(android系统,Android,SPRD)