android 12 launcher3 Folder 桌面文件夹中的应用图标位置大小调整

PreivewItemManager
问题描述:遇到了一个桌面文件夹中的图标过大,导致文件夹中的应用程序显示超过文件夹的边界,或者说,文件夹的图标整体偏上,或者偏左的问题
路径:packages\apps\Launcher3\src\com\android\launcher3\folder\PreviewItemManager.java

private void drawPreviewItem(Canvas canvas, PreviewItemDrawingParams params, PointF offset,
boolean shouldClipPath, Path clipPath) {
canvas.save();
if (shouldClipPath) {
canvas.clipPath(clipPath);
}
canvas.translate(offset.x + params.transX, offset.y + params.transY);
canvas.scale(params.scale, params.scale);
Drawable d = params.drawable;

if (d != null) {
    Rect bounds = d.getBounds();
    int leftOffset = bounds.left < 0 ? -bounds.left : 0;  // 计算左边界超出的偏移量
    int topOffset = bounds.top < 0 ? -bounds.top : 0;  // 计算顶部边界超出的偏移量

    canvas.save();
    canvas.translate(leftOffset, topOffset);  // 将画布向右下平移超出边界的距离
    canvas.scale((mIntrinsicIconSize*2) / (bounds.width()*3), (mIntrinsicIconSize*2) / (bounds.height()*3));  // 缩放图标至合适尺寸

    d.draw(canvas);  // 绘制应用程序图标

    canvas.restore();
}
canvas.restore();

}

这段代码是一个私有方法,用于在画布上绘制预览项目的图标。分步解释它的功能:

  1. canvas.save() 和 canvas.restore() 方法用于保存和恢复画布的当前状态,以确保后续操作不会影响其他绘制。
  2. shouldClipPath 参数表示是否应该对绘制进行路径裁剪,而 clipPath 参数则是用来指定裁剪的路径。如果 shouldClipPath 为 true,则会通过 canvas.clipPath(clipPath) 对绘制进行裁剪。
  3. canvas.translate(offset.x + params.transX, offset.y + params.transY) 用于设置绘制的偏移量,即绘制在画布上的位置。
  4. canvas.scale(params.scale, params.scale) 用于缩放绘制物体,其中 params.scale 表示缩放系数。
  5. params.drawable 是要绘制的图标的 drawable 对象。
  6. 如果 params.drawable 不为空,则会进行绘制。首先,通过 d.getBounds() 获取图标的边界矩形,并将画布中心与图标中心对齐(即使图标在画布上的位置相对于其边界矩形的左上角偏移);然后,根据实际图标大小和期望的内在图标大小(mIntrinsicIconSize),通过缩放画布来调整图标的大小;最后,通过 d.draw(canvas) 绘制图标。
  7. 最后,通过 canvas.restore() 恢复画布的状态。

总体而言,这段代码的作用是在给定的画布上绘制预览项目的图标,并根据需要进行裁剪、偏移和缩放操作。具体的绘制效果会受到输入参数的影响,例如图标的大小、位置、缩放系数等等。如果想要更加详细了解绘制过程,请参考代码中涉及的其他相关内容。

这个类中则对文件夹图标的显示进行了具体的计算。

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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 添加文件夹的功能并不是特别高级,仅能实现简单的文件夹管理,如果需要更加高级的文件夹管理功能,建议使用第三方应用程序或更高级的启动器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值