首页 > 代码库 > android 如何让主菜单的背景显示为壁纸
android 如何让主菜单的背景显示为壁纸
ICS/ICS2:
1、请修改 packages\apps\Launcher2\res\layout\apps_customize_pane.xml
<com.android.launcher2.AppsCustomizeTabHost
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
android:background="#00000000"> // 原值为#FF000000
2、请修改packages\apps\Launcher2\src\com\android\launcher2\Launcher.java的hideAppsCustomizeHelper(boolean animated, final boolean springLoaded)方法,如下:
......
setPivotsForZoom(fromView, scaleFactor);
updateWallpaperVisibility(true);
showHotseat(animated);
if(mDockDivider != null) { // add
mDockDivider.setVisibility(View.VISIBLE); // add
} // add
......
3、请修改Launcher.java的showAppsCustomizeHelper(boolean animated, final boolean springLoaded) 方法,如下:
......
// Shrink workspaces away if going to AppsCustomize from workspace
mWorkspace.changeState(Workspace.State.SMALL, animated);
// and hide hotseat and dock divider
hideHotseat(false); // add
if(mDockDivider != null) {// add
mDockDivider.setVisibility(View.INVISIBLE); // add
}// add
if(mWorkspace != null) {// add
mWorkspace.setVisibility(View.INVISIBLE);// add
}// add
......
4、请修改Launcher.java 文件,将showAppsCustomizeHelper(boolean animated, final boolean springLoaded)方法中出现的两处updateWallpaperVisibility(false);注释掉
第一处是在此函数内的 public void onAnimationEnd(Animator animation) 方法的最后
第二处是在showAppsCustomizeHelpe方法的最后
5、请修改Launcher.java的enterSpringLoadedDragMode()方法,如下:
void enterSpringLoadedDragMode() {
if (mState == State.APPS_CUSTOMIZE) {
mWorkspace.setVisibility(View.VISIBLE); // add
mWorkspace.changeState(Workspace.State.SPRING_LOADED);
hideAppsCustomizeHelper(true, true);
hideDockDivider();
mState = State.APPS_CUSTOMIZE_SPRING_LOADED;
}
}
ICS/ICS2 版本按照以上修改即可,如果是JB版本需要在以上修改的基础上加入如下修改:
6、请修改Launcher.java 中disableWallpaperIfInAllApps() 方法,如下:
void disableWallpaperIfInAllApps() {
// Only disable it if we are in all apps
if (isAllAppsVisible()) {
if (mAppsCustomizeTabHost != null &&
!mAppsCustomizeTabHost.isTransitioning()) {
updateWallpaperVisibility(true); // modify }
}
}
7、请修改packages\apps\Launcher2\res\layout\apps_customize_pane.xml中id 为 animation_buffer 的这个控件, 将其 android:background 设置为 #0000000
如果JB2/JB3 的版本还需要在以上修改的基础上加入如下修改:
8、请修改Launcher.java的onResume()方法:
将setWorkspaceBackground(mState == State.WORKSPACE);
修改为
setWorkspaceBackground(true);
修改了第7步之后, 在切换 widget 及 app 的时候, 可能会短时间的看到 widget 与 app 相叠加的画面。
这是 appsCustomizeTabHost.java 的 onTabChanged 方法内的 animSet.playTogether(outAnim, inAnim); 所指定的效果,可以自行修改。
1、请修改 packages\apps\Launcher2\res\layout\apps_customize_pane.xml
<com.android.launcher2.AppsCustomizeTabHost
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
android:background="#00000000"> // 原值为#FF000000
2、请修改packages\apps\Launcher2\src\com\android\launcher2\Launcher.java的hideAppsCustomizeHelper(boolean animated, final boolean springLoaded)方法,如下:
......
setPivotsForZoom(fromView, scaleFactor);
updateWallpaperVisibility(true);
showHotseat(animated);
if(mDockDivider != null) { // add
mDockDivider.setVisibility(View.VISIBLE); // add
} // add
......
3、请修改Launcher.java的showAppsCustomizeHelper(boolean animated, final boolean springLoaded) 方法,如下:
......
// Shrink workspaces away if going to AppsCustomize from workspace
mWorkspace.changeState(Workspace.State.SMALL, animated);
// and hide hotseat and dock divider
hideHotseat(false); // add
if(mDockDivider != null) {// add
mDockDivider.setVisibility(View.INVISIBLE); // add
}// add
if(mWorkspace != null) {// add
mWorkspace.setVisibility(View.INVISIBLE);// add
}// add
......
4、请修改Launcher.java 文件,将showAppsCustomizeHelper(boolean animated, final boolean springLoaded)方法中出现的两处updateWallpaperVisibility(false);注释掉
第一处是在此函数内的 public void onAnimationEnd(Animator animation) 方法的最后
第二处是在showAppsCustomizeHelpe方法的最后
5、请修改Launcher.java的enterSpringLoadedDragMode()方法,如下:
void enterSpringLoadedDragMode() {
if (mState == State.APPS_CUSTOMIZE) {
mWorkspace.setVisibility(View.VISIBLE); // add
mWorkspace.changeState(Workspace.State.SPRING_LOADED);
hideAppsCustomizeHelper(true, true);
hideDockDivider();
mState = State.APPS_CUSTOMIZE_SPRING_LOADED;
}
}
ICS/ICS2 版本按照以上修改即可,如果是JB版本需要在以上修改的基础上加入如下修改:
6、请修改Launcher.java 中disableWallpaperIfInAllApps() 方法,如下:
void disableWallpaperIfInAllApps() {
// Only disable it if we are in all apps
if (isAllAppsVisible()) {
if (mAppsCustomizeTabHost != null &&
!mAppsCustomizeTabHost.isTransitioning()) {
updateWallpaperVisibility(true); // modify }
}
}
7、请修改packages\apps\Launcher2\res\layout\apps_customize_pane.xml中id 为 animation_buffer 的这个控件, 将其 android:background 设置为 #0000000
如果JB2/JB3 的版本还需要在以上修改的基础上加入如下修改:
8、请修改Launcher.java的onResume()方法:
将setWorkspaceBackground(mState == State.WORKSPACE);
修改为
setWorkspaceBackground(true);
修改了第7步之后, 在切换 widget 及 app 的时候, 可能会短时间的看到 widget 与 app 相叠加的画面。
这是 appsCustomizeTabHost.java 的 onTabChanged 方法内的 animSet.playTogether(outAnim, inAnim); 所指定的效果,可以自行修改。
android 如何让主菜单的背景显示为壁纸
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。