日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

android8.1状态栏图标,Android 8.1 去掉 Launcher3 默认给 icon 增加的白边

發(fā)布時(shí)間:2025/4/5 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android8.1状态栏图标,Android 8.1 去掉 Launcher3 默认给 icon 增加的白边 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

如果你還不知道 icon 白邊是什么的話,請移步這篇 Android應(yīng)用圖標(biāo)微技巧,8.0系統(tǒng)中應(yīng)用圖標(biāo)的適配 看一下

為了避免 app 圖標(biāo)適配的工作,手里有源碼就是爽,我們可以修改源碼把這個白邊去掉,如果你沒有源碼就老老實(shí)實(shí)按照

上面博客的方法進(jìn)行適配吧。

修改前效果

修改后效果

思路

從上文的博客介紹可以得知只要 app 的 AndroidManifest.xml 中 targetSdkVersion 的值 >= 26,如果你沒進(jìn)行適配,Launcher3

就會給你的 app 圖標(biāo)增加一個默認(rèn)的白色遮罩。 targetSdkVersion 的值 < 26, 則使用原來的圖標(biāo)。

好了,那么在 Launcher3 中必定有判斷 targetSdkVersion 的代碼,26 對應(yīng)的變量為 Build.VERSION_CODES.O

通過全局搜索會有很多相關(guān)的,過濾我們需要的

packages\apps\Launcher3\src\com\android\launcher3\graphics\LauncherIcons.java

修改方法如下

可以看到 進(jìn)行了雙重判斷,當(dāng)前編譯系統(tǒng)的 SDK 版本是否是 23 和 iconapp 的 targetSdk 版本是否大于 23

將 if 部分直接注釋,默認(rèn)走 else 部分,不添加白邊

/**

* Returns a bitmap suitable for the all apps view. The icon is badged for {@param user}.

* The bitmap is also visually normalized with other icons.

*/

public static Bitmap createBadgedIconBitmap(

Drawable icon, UserHandle user, Context context, int iconAppTargetSdk){

IconNormalizer normalizer;

float scale = 1f;

if (!FeatureFlags.LAUNCHER3_DISABLE_ICON_NORMALIZATION) {

normalizer = IconNormalizer.getInstance(context);

//annotation for don't add white mask outshape when targetsdk >= 26

/*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);

}

Bitmap bitmap = createIconBitmap(icon, context, scale);

if (FeatureFlags.ADAPTIVE_ICON_SHADOW && Utilities.ATLEAST_OREO &&

icon instanceof AdaptiveIconDrawable) {

bitmap = ShadowGenerator.getInstance(context).recreateIcon(bitmap);

}

return badgeIconForUser(bitmap, user, context);

}

復(fù)制代碼

總結(jié)

以上是生活随笔為你收集整理的android8.1状态栏图标,Android 8.1 去掉 Launcher3 默认给 icon 增加的白边的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。