谷歌默认文件缩略图标显示为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; //控制文件夹内的子图标大小,值越大,图标越小
完成,重新运行。