关闭nfc功能。launcher应用菜单列表 更改布局排列行数,更改launcher图标大小。

关闭nfc功能 :

O,改宏控

ProjectConfig.mknfc相关改为no

NFC_CHIP_SUPPORT = no

FREEME_SUPPORT_NXP_NFC = no

FREEME_SUPPORT_NXP_NFC_PN557=no

debug_defconfig中注释掉相关的

#CONFIG_NFC_CHIP_SUPPORT=y

#CONFIG_NFC_PD54X=y

Defconfig中也注释掉相关的

#CONFIG_NFC_CHIP_SUPPORT=y

#CONFIG_NFC_PD54X=y

launcher应用菜单列表 更改布局排列行数,更改launcher图标大小:

vendor/mediatek/proprietary/packages/apps/Launcher3/src/com/android/launcher3/allapps/AllAppsGridAdapter.java

由于系统设计是会根据当前density来算到底该怎么排列,没有明确的xml配置几行几列,如果用户在开发者选项里面手动改density就会按原生设计来排布,所以加个判断就是默认density才有这个需求

AllAppsGridAdapter构造方法中,有一句

mAppsPerRow = mLauncher.getDeviceProfile().inv.numColumns;

就是决定当前是几列排布,改成

int densityDpi = launcher.getResources().getDisplayMetrics().densityDpi;

        if(densityDpi == 240){

        mAppsPerRow = 3;

        }else{

        mAppsPerRow = mLauncher.getDeviceProfile().inv.numColumns;

        }

获取density方法是获得一个context或者就是resource然后.getDisplayMetrics().densityDpi;

这个launcher是构造方法里的参数,Launcher类可获得resources,源码也用到了

Resources res = launcher.getResources();

原理流程是在

src/com/android/launcher3/allapps/AllAppsContainerView.java

调用这个适配器

构造方法里

mAH[AdapterHolder.WORK] = new AdapterHolder(true /* isWork */);

实例化了AdapterHolder,适配器就在里面设计

adapter = new AllAppsGridAdapter(mLauncher, appsList);

AllAppsGridAdapter这里面有个是管图标下面的文字的,看起来有迷惑性,

ViewHolder onCreateViewHolder

case VIEW_TYPE_ICON:

                BubbleTextView icon = (BubbleTextView) mLayoutInflater.inflate(

                        R.layout.all_apps_icon, parent, false);

这个可以修改下面文字的排布,并不是图标,到底还是个textview

更改launcher图标大小:

vendor/mediatek/proprietary/packages/apps/Launcher3/ src/com/android/launcher3/DeviceProfile.java

源码定义的全局变量

// Workspace icons

    public int iconSizePx;

    public int iconTextSizePx;

    public int iconDrawablePaddingPx;

public int iconDrawablePaddingOriginalPx;



// All apps

    public int allAppsCellHeightPx;

    public int allAppsIconSizePx;

    public int allAppsIconDrawablePaddingPx;

    public float allAppsIconTextSizePx;

updateIconSize方法里

思路都一样,在此时的density改变大小,其他情况还是用原生设计

桌面图标大小,这里改了,应用列表图标一样生效,原理如下

int densityDpi = res.getDisplayMetrics().densityDpi;

        if(densityDpi == 240){

        iconSizePx = 96;

        }else{

        iconSizePx = (int) (Utilities.pxFromDp(invIconSizePx, dm) * scale);

        }

所有应用列表图标大小:

if(densityDpi == 240){

                allAppsIconSizePx = 96;

        }else{

                allAppsIconSizePx = iconSizePx;

        }

先打log,改变density看看需要的数值是多少,然后改

如果两个都要改的话,其实只需要改前面的iconSizePx就行,因为反正后面都赋值了allAppsIconSizePx = iconSizePx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Youth King

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

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

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

打赏作者

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

抵扣说明:

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

余额充值