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