Launcher3 文件夹改成九宫格显示

谷歌默认文件缩略图标显示为45度倾斜向上,现改成九宫格显示。

全局搜索:

computePreviewItemDrawingParams

将其改成:

private PreviewItemDrawingParams computePreviewItemDrawingParams(int index,
                                                                 PreviewItemDrawingParams params) {
    /*add start*/
    int index_order = index;
    final int previewPadding = FolderRingAnimator.sPreviewPadding;
    /*add end*/

    index = NUM_ITEMS_IN_PREVIEW - index - 1;
    float r = (index * 1.0f) / (NUM_ITEMS_IN_PREVIEW - 1);
    float scale = (1 - PERSPECTIVE_SCALE_FACTOR * (1 - r));
    float offset = (1 - r) * mMaxPerspectiveShift;
    float scaledSize = scale * mBaselineIconSize;
    float scaleOffsetCorrection = (1 - scale) * mBaselineIconSize;

    // We want to imagine our coordinates from the bottom left, growing up and to the
    // right. This is natural for the x-axis, but for the y-axis, we have to invert things.
    float transY = mAvailableSpaceInPreview - (offset + scaledSize + scaleOffsetCorrection);
    float transX = offset + scaleOffsetCorrection;

    //计算图标的位置
    if(0 <= index_order && index_order < 3){ // 0 1 2
        transX= index_order * mBaselineIconSize + 1*previewPadding;
        transY=mAvailableSpaceInPreview - (2*mBaselineIconSize + scaledSize + scaleOffsetCorrection) + getPaddingTop()+0.2f*mBaselineIconSize;
    }else if(3 <= index_order&&index_order < 6){ // 3 4 5
        transX=(index_order-3) * mBaselineIconSize + 1*previewPadding;
        //transY=1*mBaselineIconSize+9*previewPadding;
        transY=mAvailableSpaceInPreview - (1*mBaselineIconSize + scaledSize + scaleOffsetCorrection) + getPaddingTop()+0.2f*mBaselineIconSize;
    }else if(6 <= index_order&&index_order < 9){ // 6 7 8
        transX=(index_order-6)*mBaselineIconSize + 1*previewPadding;
        //transY=2*mBaselineIconSize+9*previewPadding;
        transY=mAvailableSpaceInPreview - (0*mBaselineIconSize + scaledSize + scaleOffsetCorrection) + getPaddingTop()+0.2f*mBaselineIconSize;
    }

    float totalScale = mBaselineIconScale * scale;//图标大小依次减小
    final int overlayAlpha = (int) (80 * (1 - r));
    totalScale = mBaselineIconScale * 1 - 0.1f;//图标大小保持不变

    if (params == null) {
        params = new PreviewItemDrawingParams(transX, transY, totalScale, overlayAlpha);
    } else {
        params.transX = transX;
        params.transY = transY;
        params.scale = totalScale;
        params.overlayAlpha = overlayAlpha;
    }
    return params;
}

注意,将

private static final int NUM_ITEMS_IN_PREVIEW = 9;//显示的个数

private static final float PERSPECTIVE_SHIFT_FACTOR = 1.9f; //控制文件夹内的子图标大小,值越大,图标越小

完成,重新运行。







猜你喜欢

转载自blog.csdn.net/qq_24800377/article/details/80405249