ShelfScrimView类下有绘制抽屉界面背景方法drawBackground(Canvas canvas),去掉该方法即可实现全透明效果。
src/com/android/quickstep/views/ShelfScrimView.java
@Override protected void onDraw(Canvas canvas) { //去掉all app页面背景,使其变成全透明背景 // float translate = drawBackground(canvas); // // if (mDragHandle != null) { // canvas.translate(0, -translate); // mDragHandle.draw(canvas); // canvas.translate(0, translate); // } }
对于不同Android 系统版本可能会有不同,在Android 13的版本中没有ShelfScrimView.java(Android 9.0),针对Android 13版本all app背景颜色的逻辑如下:
--packages/apps/Launcher3/quickstep/src/com/android/launcher3/uioverrides/states/AllAppsState.java
@@ -130,9 +130,11 @@ public class AllAppsState extends LauncherState {
@Override
public int getWorkspaceScrimColor(Launcher launcher) {
return launcher.getDeviceProfile().isTablet
? launcher.getResources().getColor(R.color.widgets_picker_scrim)
: Themes.getAttrColor(launcher, R.attr.allAppsScrimColor);
}
getWorkspaceScrimColor方法下面就是设置all app背景颜色,可以直接修改widgets_picker_scrim改成自己想要的颜色,透明的话直接改成 return Color.TRANSPARENT
完成