十、AOSP-app图标去白边+去Google搜索栏

一、app图标去白边

  • 源码路径:packages\apps\Launcher3\src\com\android\launcher3\graphics\LauncherIcons.java
  • 源码
if (!FeatureFlags.LAUNCHER3_DISABLE_ICON_NORMALIZATION) {
    normalizer = IconNormalizer.getInstance(context);
    if (Utilities.ATLEAST_OREO && iconAppTargetSdk >= Build.VERSION_CODES.O) {
        boolean[] outShape = new boolean[1];
        AdaptiveIconDrawable dr = (AdaptiveIconDrawable)
                context.getDrawable(R.drawable.adaptive_icon_drawable_wrapper).mutate();
        dr.setBounds(0, 0, 1, 1);
        scale = normalizer.getScale(icon, null, dr.getIconMask(), outShape);
        if (FeatureFlags.LEGACY_ICON_TREATMENT &&
                !outShape[0]){
            Drawable wrappedIcon = wrapToAdaptiveIconDrawable(context, icon, scale);
            if (wrappedIcon != icon) {
                icon = wrappedIcon;
                scale = normalizer.getScale(icon, null, null, null);
            }
        }
    } else {
        scale = normalizer.getScale(icon, null, null, null);
    }
}
  • 修改
if (!FeatureFlags.LAUNCHER3_DISABLE_ICON_NORMALIZATION) {
    normalizer = IconNormalizer.getInstance(context);
    //zjp delete
    /*if (Utilities.ATLEAST_OREO && iconAppTargetSdk >= Build.VERSION_CODES.O) {
        boolean[] outShape = new boolean[1];
        AdaptiveIconDrawable dr = (AdaptiveIconDrawable)
                context.getDrawable(R.drawable.adaptive_icon_drawable_wrapper).mutate();
        dr.setBounds(0, 0, 1, 1);
        scale = normalizer.getScale(icon, null, dr.getIconMask(), outShape);
        if (FeatureFlags.LEGACY_ICON_TREATMENT &&
                !outShape[0]){
            Drawable wrappedIcon = wrapToAdaptiveIconDrawable(context, icon, scale);
            if (wrappedIcon != icon) {
                icon = wrappedIcon;
                scale = normalizer.getScale(icon, null, null, null);
            }
        }
    } else {
        scale = normalizer.getScale(icon, null, null, null);
    }*/
    scale = normalizer.getScale(icon, null, null, null);//zjp add
}

二、去Google搜索栏

1、删除xml配置

  • 源码路径:/packages/apps/Launcher3/res/layout/search_container_workspace.xml

  • 源码

<com.android.launcher3.qsb.QsbContainerView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:id="@id/search_container_workspace"
        android:padding="0dp" >

    <fragment
        android:name="com.android.launcher3.qsb.QsbContainerView$QsbFragment"
        android:layout_width="match_parent"
        android:tag="qsb_view"
        android:layout_height="match_parent"/>
  • 修改
<com.android.launcher3.qsb.QsbContainerView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:id="@id/search_container_workspace"
        android:padding="0dp" >
<!-- zjp update
    <fragment
        android:name="com.android.launcher3.qsb.QsbContainerView$QsbFragment"
        android:layout_width="match_parent"
        android:tag="qsb_view"
        android:layout_height="match_parent"/>
-->

2、删除资源加载代码

  • 源码位置: /packages/apps/Launcher3/src/com/android/launcher3/Workspace.java
  • 源码
// Always add a QSB on the first screen.
if (qsb == null) {
    // In transposed layout, we add the QSB in the Grid. As workspace does not touch the
    // edges, we do not need a full width QSB.
    qsb = LayoutInflater.from(getContext())
            .inflate(R.layout.search_container_workspace,firstPage, false);
}
CellLayout.LayoutParams lp = new CellLayout.LayoutParams(0, 0, firstPage.getCountX(), 1);
lp.canReorder = false;
if (!firstPage.addViewToCellLayout(qsb, 0, R.id.search_container_workspace, lp, true)) {
    Log.e(TAG, "Failed to add to item at (0, 0) to CellLayout");
}
  • 修改
// Always add a QSB on the first screen.
if (qsb == null) {
    // In transposed layout, we add the QSB in the Grid. As workspace does not touch the
    // edges, we do not need a full width QSB.
    qsb = LayoutInflater.from(getContext())
            .inflate(R.layout.search_container_workspace,firstPage, false);
}
/* zjp update
CellLayout.LayoutParams lp = new CellLayout.LayoutParams(0, 0, firstPage.getCountX(), 1);
lp.canReorder = false;
if (!firstPage.addViewToCellLayout(qsb, 0, R.id.search_container_workspace, lp, true)) {
    Log.e(TAG, "Failed to add to item at (0, 0) to CellLayout");
}*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无休止符

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值