Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 如何讓主菜單的背景顯示為壁紙

android 如何讓主菜單的背景顯示為壁紙

編輯:關於Android編程

ICS/ICS2:
1、請修改 packages\apps\Launcher2\res\layout\apps_customize_pane.xml
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. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved