launcher3 修改文件夹图标九宫格显示

res/layout/folder_icon.xml:        android:src="@drawable/icon_bg_6"/>     换个方形的背景

packages\apps\Launcher3\src\com\android\launcher3\FolderIcon.java

    private PreviewItemDrawingParams computePreviewItemDrawingParams(int index,
            PreviewItemDrawingParams params) {
// add by x
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) + getPaddingTop();
        float transX = offset + scaleOffsetCorrection;
        float totalScale = mBaselineIconScale * scale;
        final int overlayAlpha = (int) (80 * (1 - r));

// add by x
if( PERSPECTIVE_SHIFT_FACTOR ==0.24f){

}else{
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;
}
totalScale = mBaselineIconScale * 1 - 0.1f;
}
//add end



        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;
    }


    // The number of icons to display in the
    private static final int NUM_ITEMS_IN_PREVIEW = 4;     // 显示的个数

    // The amount of vertical spread between items in the stack [0...1]
    private static final float PERSPECTIVE_SHIFT_FACTOR = 1.59f;//1.59f //0.24f     //控制文件夹内的子图标大小,值越大,图标越小

    因为这个值关系到 mBaselineIconSize ,如下

    

private void computePreviewDrawingParams(int drawableSize, int totalSize) {

            int unscaledHeight = (int) (mIntrinsicIconSize * (1 + PERSPECTIVE_SHIFT_FACTOR));
            mBaselineIconScale = (1.0f * adjustedAvailableSpace / unscaledHeight);
            mBaselineIconSize = (int) (mIntrinsicIconSize * mBaselineIconScale);

...

}


    @Override
    protected void dispatchDraw(Canvas canvas) {

~         // 显示子图标的 顺序

        int nItemsInPreview = Math.min(items.size(), NUM_ITEMS_IN_PREVIEW);
        if (!mAnimating) {
            //for (int i = nItemsInPreview - 1; i >= 0; i--) {       
for (int i = 0; i <= nItemsInPreview - 1; i++) {
                v = (TextView) items.get(i);
                if (!mHiddenItems.contains(v.getTag())) {
                    d = v.getCompoundDrawables()[1];
                    mParams = computePreviewItemDrawingParams(i, mParams);
                    mParams.drawable = d;
                    drawPreviewItem(canvas, mParams);
                }
            }
        } else {
            drawPreviewItem(canvas, mAnimParams);
        }
                                  

~

}










### 回答1: 在Android Launcher3中添加文件夹是一项非常简单的任务。首先,您需要确保您的设备装有最新版本的Android Launcher3。然后,按照以下步骤操作: 1. 在您要添加文件夹的主屏幕上,长按应用程序图标并将其拖放到主屏幕上的任何空白区域。 2. 继续将其他应用程序拖放到同一个空白区域。您将看到这些应用程序自动聚合成一个名为“文件夹”的小图标。 3. 现在,单击文件夹并将其重命名为您想要的名称(例如“工具”或“社交媒体”)。 4. 现在,您可以轻触文件夹图标以展开它,并查看其中包含的所有应用程序。您还可以将其他应用程序拖放到文件夹中,或从中删除应用程序。 总的来说,添加文件夹是一个简单,快速的过程,您可以将多个应用程序组织在一起,以增加您的生产力和效率。 ### 回答2: Android Launcher3Android系统中的一个默认桌面应用程序,它提供了许多功能和自定义选项,用户可以根据自己的需求进行个性化配置。 添加文件夹Launcher3中的一个比较简单的操作,步骤如下: 1.长按桌面上的任何一个程序图标或者小部件,直到屏幕上出现菜单。 2.将程序图标或小部件拖到菜单上的“新建文件夹”选项。 3.在弹出的窗口中,输入文件夹的名称,例如“游戏”。 4.点击确定按钮,文件夹就被创建了。 5.将其他程序图标或者小部件拖到这个新建的文件夹中,这样你就可以将类似的应用程序放在一个文件夹里面,方便管理和使用。 除此之外,Launcher3还可以对文件夹进行修改和删除。如果想要修改文件夹名称,可以长按文件夹图标,然后选择重命名选项,在弹出的窗口中修改名称。如果想要删除文件夹,可以将文件夹中的所有应用程序拖出来,然后长按文件夹图标,选择删除选项即可。 总的来说,添加文件夹可以帮助我们更好地组织应用程序,避免出现杂乱无章的情况,同时也可以提高我们的使用效率。 ### 回答3: Android Launcher3 是一个开源的 Android 开源项目桌面应用,支持自定义布局、自定义主题、自定义小部件和自定义图标等等功能。其中添加文件夹功能是 Launcher3 的核心功能之一,使用起来非常方便。 添加文件夹的操作步骤如下: 第一步,长按待创建文件夹的应用程序图标,就可以将其拖拽到桌面上。 第二步,将该应用程序图标放置在需要创建文件夹的位置,在放置图标的过程中会出现与其他应用程序图标合并的状态,此时可以松手。 第三步,创建完成后,系统会自动弹出文件夹编辑界面,可以对文件夹进行命名修改。 第四步,在文件夹添加应用程序,将所有的应用程序图标全部添加到该文件夹中,避免让桌面太过臃肿。 需要注意的是,Android Launcher3 添加文件夹的功能并不是特别高级,仅能实现简单的文件夹管理,如果需要更加高级的文件夹管理功能,建议使用第三方应用程序或更高级的启动器。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值