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 */