Bootstrap

Android8.1 Launcher3 修改文件夹样式(二)

Android8.1 Launcher3 修改文件夹样式(二)

这篇博客修改的是文件夹的缩略图,修改为九宫格。

原生的是一个圆形,而且最多只能显示四个app的缩略图,修改为国内常见的九宫格形式;
上代码
src/com/android/launcher3/folder/FolderIcon.java
可以看到这个FolderIcon是一个view,那么基本就可以确定这就是文件夹的缩略图了,但是找了一下没发现它有onDraw()方法,也没有onLayout()方法;
找了一会没有思路,这个时候我转变了思路,在folder包下面,发现src/com/android/launcher3/folder/ClippedFolderIconLayoutRule.java
这个类,有兴趣的同学可以看看,里面有三角函数,还有圆周率,因为原生的文件夹缩略图就是以圆形排列的,为了确定,修改这两个常量,就可以看出效果:

 /* 20180702 modify begin */
//    static final int MAX_NUM_ITEMS_IN_PREVIEW = 4;
    static final int MAX_NUM_ITEMS_IN_PREVIEW = Integer.MAX_VALUE;
    /* 20180702 modify end */
    private static final int MIN_NUM_ITEMS_IN_PREVIEW = 2;

    /* 20180702 modify begin */
    private static final float MIN_SCALE = 0.22f;
    /* 20180702 modify end */

到这里就可以确定文件夹缩略图的规则就是这个类做的了,那么我们就要修改一下这个规则:

@Override
    public PreviewItemDrawingParams computePreviewItemDrawingParams(int index, int curNumItems,
            PreviewItemDrawingParams params) {

......        

        transX = mTmpPoint[0];
        transY = mTmpPoint[1];

        /* 20180702 modify begin */
        
;